dansol / monolog-extensions
用于Monolog的附加处理器、格式化程序和处理器
v1.0.0
2022-12-29 18:32 UTC
Requires
- php: ~8.0.0 || ~8.1.0 || ~8.2.0
- monolog/monolog: ^2.8
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]);