v-dem / queasy-log
日志类(目前支持文件系统、控制台和简单电子邮件日志),属于 QuEasy PHP 框架的一部分
1.0.0
2021-08-17 05:53 UTC
Requires
- php: >=5.3.0|>=7.0.0
- psr/log: ~1.1
Requires (Dev)
- php: >=7.2.0
- ext-xdebug: ^2.6.0
- phpunit/phpunit: ~7
Suggests
- queasy/config: Configuration provider package, supports PHP (and multifile configs in this case), INI, XML and JSON (and YAML in future) formats
Provides
- psr/log-implementation: 1.0.0
This package is auto-updated.
Last update: 2024-09-18 06:40:14 UTC
README
QuEasy PHP 框架 - 日志器
包 v-dem/queasy-log
包含与 PSR-3 日志接口兼容的日志类。目前实现了文件系统和控制台日志器。本包包括以下类型的日志
- 日志器(基础类,可以用作其他日志器的容器)
- FileSystemLogger
- ConsoleLogger(支持 ANSI 颜色代码)
- SimpleMailLogger(封装了
mail()
函数)
特性
- PSR-3 兼容。
- 易于使用。
- 易于扩展。
- 支持嵌套日志器。
- 可配置的输出消息格式。
需求
- PHP 版本 5.3 或更高
文档
请参阅我们的 Wiki 页面。
安装
composer require v-dem/queasy-log:master-dev
使用
让我们假设我们有一个以下 config.php
return [ 'logger' => [ 'class' => queasy\log\FileSystemLogger::class, // Logger class 'processName' => 'test', // Process name, to differentiate log messages from different sources 'minLevel' => Psr\Log\LogLevel::WARNING, // Message's minimum acceptable log level 'path' => 'debug.log' // Path to logger output file ] ];
创建日志器实例
包含 Composer 自动加载器
require_once('vendor/autoload.php');
创建配置实例(使用 v-dem/queasy-config
包)
$config = new queasy\config\Config('config.php');
或使用数组
$config = include('config.php');
创建日志器实例(在这种情况下,可以省略 class
选项,并且将被忽略)
$logger = new queasy\log\Logger($config);
另一种创建日志器实例的方法(它将创建 $config->logger->class
的实例,默认情况下将使用作为聚合日志器的 queasy\log\Logger
)
$logger = queasy\log\Logger::create($config);
FileSystemLogger
和ConsoleLogger
有默认设置,可以在没有配置的情况下使用。默认日志文件路径为debug.log
,默认最小日志级别为Psr\Log\LogLevel::DEBUG
,最大为LogLevel::EMERGENCY
。
将消息写入日志
输出警告消息
$logger->warning('Test warning message.');
在 debug.log
中,您将看到类似以下的内容
2017-12-24 16:13:09.302334 EET test [] [] [WARNING] Test warning message.
链式日志消息
$logger ->warning('going strange') ->error('cannot connect to the database') ->emergency('the website is down');
使用复合/嵌套日志器
config.php
:
return [ [ 'class' => queasy\log\FileSystemLogger::class, 'path' => 'debug.full.log', 'minLevel' => Psr\Log\LogLevel::DEBUG, [ 'class' => queasy\log\ConsoleLogger::class, 'minLevel' => Psr\Log\LogLevel::INFO ], [ 'class' => queasy\log\SimpleMailLogger::class, 'minLevel' => Psr\Log\LogLevel::ALERT, 'mailTo' => '[email protected]', 'subject' => 'Website Alert' ] ], [ 'class' => queasy\log\FileSystemLogger::class, 'path' => 'debug.log', 'minLevel' => Psr\Log\LogLevel::INFO ] ];
使用
$config = new queasy\config\Config('config.php'); $logger = new queasy\log\Logger($config); $logger->info('Hello, world!');
在日志文件名中使用日期/时间(注意那里的 "%s",它将被当前日期和/或时间替换,格式化方式如 timeLabel
中所述)
config.php
:
return [ [ 'class' => queasy\log\FileSystemLogger::class, 'path' => 'debug-full.%s.log', 'timeLabel' => 'Y-m-d', 'minLevel' => Psr\Log\LogLevel::DEBUG ] ];