mmdm / sim-logger
一个简单而不错的日志库
Requires
- php: >=7.2
- ext-json: *
This package is auto-updated.
Last update: 2024-09-06 09:32:13 UTC
README
一个用于记录您活动的库
安装
composer
composer require mmdm/sim-logger
或者,您可以直接从GitHub下载zip文件并解压,然后将文件放入您的项目库中,然后像其他库一样使用它。
只需添加以下行来自动加载文件
require_once 'path_to_library/autoloader.php';
然后您就可以开始了。
如何使用
// to instance a logger object $logger = new Logger(new FileHandler($directory_to_store_logs)); // now use logger functions, for instance debug method $logger->debug('this is a debug message');
或者使用其他可选构造函数参数实例化Logger
描述
$logger = new Logger([$handler[, $format[, $date_format]]]);
$handler是IHandler类型,而IHandler是一个接口,用于扩展日志以用于其他类型的处理器,而不仅仅是文件处理。
您也可以通过handler(IHandler $handler)方法在初始化日志后设置处理器。
要扩展IHandler,您必须实现以下函数
class CustomHandler implements IHandler { /** * CunstomHandler constructor. */ public function __construct() { // do initialize your needed things } /** * @return IHandler */ public function init(): IHandler { // to whatever need for handler initialization return $this; } /** * @param string $message * @param array $data * @return bool */ public function write(string $message, array $data = []): bool { // write $message with your log handler // $data have all parameters as key => value pairs // return true if write was OK or false if it wasn't } }
$format用于格式化需要写入的消息。默认值是{level}: {date} - {message}
$format_date用于格式化日志日期。默认值是Y-m-d H:i:s。
可用函数
有许多函数可以记录您的消息。它们的优先级顺序是
-
EMERGENCY - 最高优先级
-
ALERT
-
CRITICAL
-
ERROR
-
WARNING
-
NOTICE
-
INFO
-
DEBUG - 最低优先级
// log emergency $logger->emergency($message); // log alert $logger->alert($message); // log critical $logger->critical($message); // log error $logger->error($message); // log warning $logger->warning($message); // log notice $logger->notice($message); // log info $logger->info($message); // log debug $logger->debug($message); // or you can use log function to log any level you want, // including previous functions $logger->log($message, LOGGER::DEBUG); // or $logger->log($message, 'custom level');
如果您需要记录附加数据,则应使用extraParameters($parameter)方法并修改日志格式,以便使用format($format)方法在日志消息中显示您的参数。
$logger->extraParameters([ 'other_parameter' => $valueOfParameter ])->format('{level} - {other_parameter} - {message}'); // now we can use log methods $logger->log('a log message', 'custom level');
如果您需要更改日期格式,则可以使用dateFormat($format)方法
$logger->dateFormat('Y/m/d H:i');
如果您想获得更好的日期体验,应通过setTimezone($timezone)方法输入您的时区。默认时区是环境默认时区。
时区将与日期一起显示以提供更多信息。
例如,2020-07-25 09:46:19 (America/New_York)
$logger->setTimezone('America/New_York');
许可
在MIT许可下。