fluffy / monolog-cascade-namespaced
Monolog 级联扩展允许为特定命名空间/类配置记录器(log4j 风格)
Requires
- theorchard/monolog-cascade: ^0.5.0
Requires (Dev)
- phpunit/phpunit: ~4.5
This package is auto-updated.
Last update: 2024-09-06 13:39:52 UTC
README
什么是 Monolog 级联命名空间?
Monolog 级联命名空间是Monolog 级联的一个扩展,允许您为特定命名空间/类配置记录器。
安装
在您的 composer.json 文件中将 monolog-cascade-namespaced 添加为依赖项或运行
$ composer require fluffy/monolog-cascade-namespaced
注意:Monolog 级联需要 PHP 5.3.9 或更高版本。
用法
加载配置(Monolog 级联 支持以下配置格式: yml、json 和 php)
<?php use CascadeNamespaced\CascadeNamespaced; CascadeNamespaced::fileConfig('path/to/some/config.yaml');
然后只需使用您的记录器
CascadeNamespaced::getLogger(get_called_class())->info('Info message.');
注意:为了将来在配置文件中配置此记录器以具有特定配置,您必须在 CascadeNamespaced::getLogger() 方法中传递一个完整的类名。您可以使用 get_called_class() 函数获取完整的类名。
配置
根记录器
在您的级联配置中定义 root 记录器。如果没有为您的命名空间/类定义任何特定记录器,则 CascadeNamespaced::getLogger(get_called_class()) 将返回它。这是您应用程序的默认记录器。如果没有定义 root 记录器,则将返回默认的 Monolog 记录器。
handlers: console: class: Monolog\Handler\StreamHandler stream: php://stdout loggers: root: handlers: [console]
命名空间/类特定记录器
假设您有以下类
MyNamespace\Class1
MyNamespace\Class2
MyNamespace\SubNamespace\Class3
MyNamespace\SubNamespace\Class4
AnotherNamespace\Class5
并且您希望将 MyNamespace\SubNamespace 命名空间类的消息记录到 stdout,但将 MyNamespace\Class1 和 MyNamespace\Class2 类的消息记录到两个不同的文件中。这可以通过以下配置完成
handlers:
file1:
class: Monolog\Handler\StreamHandler
stream: log_file_1.log
file2:
class: Monolog\Handler\StreamHandler
stream: log_file_2.log
console:
class: Monolog\Handler\StreamHandler
stream: php://stdout
loggers:
# Will be used for `AnotherNamespace\Class5` class as a default logger
# because there are no specific loggers defined for this class.
root:
handlers: [console]
# Will be used for all the classes from `MyNamespace\SubNamespace` namespace.
MyNamespace\SubNamespace:
handlers: [console]
# Will be used for `MyNamespace\Class1` class.
MyNamespace\Class1:
handlers: [file1]
# Will be used for `MyNamespace\Class2` class.
MyNamespace\Class2:
handlers: [file2]
对于其他类,CascadeNamespaced 将返回作为应用程序默认记录器的 root 记录器。
测试
$ composer install $ ./vendor/bin/phpunit
许可证
Monolog 级联命名空间根据 MIT 许可证授权 - 详细信息请参阅 LICENSE 文件。