mattferris / logging
此软件包的最新版本(1.0)没有提供许可证信息。
PHP 日志记录器
1.0
2024-05-29 19:11 UTC
Requires
- psr/log: ^1.0.1
Requires (Dev)
- mikey179/vfsstream: ^1.6
- phpunit/phpunit: ^9.0
This package is auto-updated.
Last update: 2024-08-29 19:37:05 UTC
README
符合PSR-3规范的日志记录器。
将日志记录到文件
use MattFerris\Logging\Logger; use MattFerris\Logging\Handlers\FileHandler; $logger = new Logger([ ['handler' => new FileHandler('log.txt')] ]); $logger->error('an error occured');
在上面的例子中,所有日志消息都将记录到日志文件中。为了隔离特定一个或多个日志级别,可以在传递处理器时指定一个levels
键。
use MattFerris\Logging\Logger; use MattFerris\Logging\Handlers\FileHandler; use Psr\Log\LogLevel; $logger = new Logger([ [ 'handler' => new FileHandler('log.txt'), 'levels' => [ LogLevel::EMERGENCY, LogLevel::CRITICAL, LogLevel::ERROR ] ] ]);
也可以指定一个maxlevel
键,以便处理器将记录到特定级别的所有内容。上面的示例可以这样简化
$logger = new Logger([ [ 'handler' => new FileHandler('log.txt'), 'maxlevel' => LogLevel::ERROR ] ]);
可以使用多个处理器将日志记录到多个目的地。这可以用来将不同的日志级别记录到不同的文件中,甚至是一个文件和一个数据库。目前,只包括FileHandler
,但任何实现MattFerris\Logging\Handlers\HandlerInterface
的callable
或类都可以使用。
日志消息占位符
根据PSR-3,可以在日志消息中使用占位符,然后使用提供的$context
数组中的相应键填充。
$logger->error('the user {user} does not exist', ['user' => 'joe']);
这将生成日志消息用户joe不存在
。这个替换由InterpolationHelper
辅助类处理。
use MattFerris\Logging\Helpers\InterpolationHelper; $logger = new Logger($handlers, [ new InterpolationHelper() ]);