dansol/monolog-extensions

用于Monolog的附加处理器、格式化程序和处理器

v1.0.0 2022-12-29 18:32 UTC

This package is not auto-updated.

Last update: 2024-09-21 22:31:14 UTC


README

用于Monolog的附加处理器、格式化程序和处理器(目前仅支持PDOHandler)

安装

$ composer require dansol/monolog-extensions

PDO处理器

允许通过PDO将日志消息存储到数据库。处理器可以管理记录映射以匹配自定义数据库表/字段

示例

use MonologExtensions\Handler\PDOHandler;
use Monolog\Logger;

...

// PDO
try {
     $pdo = new PDO($dsn, $user, $pass, $options);
} catch (\PDOException $e) {
     throw new \PDOException($e->getMessage(), (int)$e->getCode());
}

//---------------------------------------------------------------------
// Logger Initialization 
// *** example*** adapat tablename, dateformat, mapping to your needs

// tb_log ->([Date] [datetime] NULL,[Type] [nvarchar](50) NULL,[Event] [nvarchar](max) NULL,[UserName] [nvarchar](50) NULL) 
$dbTableName="Tb_Logs";

// database date format
$databaseDateFormat="Y-m-d H:i:s";

// map log properties to database table fields
$mapping = [
    'datetime' 	=> 'date',
    'level'  	=> 'type',
    'message'   => 'event',
    'context'	=> [
    	'username'  => 'username' // custom fields/info
    ] 
];

// monolog new pdo Handler
$pdoHandler= new PDOHandler($pdo,$dbTableName,$databaseDateFormat,$mapping);
				
$logger = new Logger('channel name');
$logger->pushHandler($pdoHandler, \Monolog\Logger::DEBUG );
//----------------------------------------------------------------

....

// write log example
$this->logger->info('successfully login for user ' . $identity ,['username'=>$identity]);