donchev / simple-logger
PHP项目的简单日志记录器
2.1.0
2021-03-24 11:09 UTC
Requires (Dev)
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-09-24 19:56:32 UTC
README
一个符合PSR-3的PHP日志库。
安装
composer require donchev/simple-logger
简单用法
<?php require_once __DIR__ . '/vendor/autoload.php'; $logger = new \Donchev\Log\Loggers\FileLogger('file.log'); $logger->debug('Log me');
输出
[2021-03-18 10:03:11 CET] [DEBUG]: Log me
高级用法
<?php require_once __DIR__ . '/vendor/autoload.php'; $config = [ 'line_format' => '[%s] [%s]: %s %s', 'date_format' => 'Y-m-d H:i:s T', 'file_prefix' => 'pre_', 'include_context' => true, 'log_json' => false, 'include_stack_trace' => true, ]; $logger = new \Donchev\Log\Loggers\FileLogger('file.log', \Psr\Log\LogLevel::INFO, $config); $logger->debug('This message will not be logged in'); $logger->info( 'Some cool message', [ 'Additional info' => 'I am the additional info', 'An array of info' => [ 'Key A' => 'Content', 'Key B' => [1, 2, 3] ], 'An object' => new DateTime(), ] ); $logger->log( \Psr\Log\LogLevel::WARNING, 'Some cool warning here', [ 'exception' => new RuntimeException('Just happened') ] );
输出
[2021-03-18 10:01:20 CET] [INFO]: Some cool message
Context:
(
[Additional info] => I am the additional info
[An array of info] => Array
(
[Key A] => Content
[Key B] => Array
(
[0] => 1
[1] => 2
[2] => 3
)
)
[An object] => DateTime Object
(
[date] => 2021-03-18 10:01:20.256324
[timezone_type] => 3
[timezone] => Europe/Berlin
)
)
[2021-03-18 10:01:20 CET] [WARNING]: Some cool warning here
Context:
(
[exception] => RuntimeException: Just happened in C:\dev\simple-logger-test\index.php:24
Stack trace:
#0 {main}
)
可用的日志记录器
有5种不同的日志记录器类可供选择
\Donchev\Log\Loggers\FileLogger
\Donchev\Log\Loggers\OutputLogger
\Donchev\Log\Loggers\StdOutLogger
\Donchev\Log\Loggers\StdErrLogger
\Donchev\Log\Loggers\NullLogger
最小日志级别
您可以通过构造函数设置最小日志级别,传入一个Psr\Log\LogLevel
作为参数。如果设置,则不会记录低于该优先级的消息。
日志级别优先级
LogLevel::EMERGENCY => 7,
LogLevel::ALERT => 6,
LogLevel::CRITICAL => 5,
LogLevel::ERROR => 4,
LogLevel::WARNING => 3,
LogLevel::NOTICE => 2,
LogLevel::INFO => 1,
LogLevel::DEBUG => 0,
日志消息插值
您可以在消息中使用占位符,如描述在PSR-3标准中。
示例
$logger = new FileLogger('file.log'); $logger->info( 'Here comes the placeholder: {foo}!', ['foo' => 'Hi there from within the context'] );
输出
[2021-03-18 10:43:56 CET] [INFO]: Here comes the placeholder: Hi there from within the context!
Context:
(
[foo] => Hi there from within the context
)
日志选项
您可以通过构造函数传递一个选项数组。
示例
$logger = new \Donchev\Log\Loggers\OutputLogger(\Psr\Log\LogLevel::WARNING, [ 'file_prefix' => '', 'include_context' => true, 'log_json' => false, 'one_line_log' => true, ]);
可用选项
作者
许可协议
MIT许可协议(MIT)
版权所有 © 2021 Donchev
在此特此授予任何人免费获得此软件和相关文档副本(“软件”)的权利,不受限制地处理软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本,并允许软件提供者这样做,前提是遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“现状”提供,不提供任何形式的保证,明示或暗示,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权持有人不对任何索赔、损害或其他责任负责,无论这些责任是因合同、侵权或其他原因产生的,无论是在软件或其使用或操作中产生的。