beta / bx.logger
Bitrix app 的 PSR-3 logger
2.0.1
2023-10-10 15:57 UTC
Requires (Dev)
- squizlabs/php_codesniffer: ^3.6
- vimeo/psalm: ^4.22
README
模块中包含3个对Bitrix API的封装
- FileLogger - 是AddMessage2Log的封装,相应的日志保存路径由LOG_FILENAME常量定义
- JournalLogger - 将日志记录到事件日志 /bitrix/admin/event_log.php?lang=ru,参数 $context 可以包含多个重要参数,对应于表字段
- DebugLogger - 是Bitrix\Main\Diag\Debug::dumpToFile和Bitrix\Main\Diag\Debug::writeToFile方法的封装
同时还有一个简单的文件记录实现 SimpleTextLogger - 构造函数中定义了日期/时间的格式和消息的格式。
模块中定义了更高层次的抽象 LoggerManagerInterface,允许设置多个日志器针对不同级别 + 用于记录异常和Bitrix\Main\Result对象的日志方法
使用示例
use Bx\Logger\LoggerManager; use Bx\Logger\SimpleTextLogger; use Bx\Logger\JournalLogger; use Bx\Logger\FileLogger; use Psr\Log\LogLevel; $simpleTextLogger = new SimpleTextLogger( $_SERVER['DOCUMENT_ROOT'].'/log/ation_'.date('Y-m-d').'.log', // путь сохранения лога 'Y/m/d H:i:s', // формат даты/времени "{date} {level}:\t{message}" // формат сообщения ) $loggerManager = new LoggerManager($simpleTextLogger); // создаем новый менеджер с логером по-умолчанию и типом default $journalLogger = new JournalLogger('my.module'); $loggerManager->setLogger($journalLogger, LogLevel::ERROR); // логи с ошибками будут записаны в журнал событий битрикса $fileLogger = new FileLogger(); $loggerManager->setLogger($fileLogger, LogLevel::WARNING); // логи с предупреждениями будут записаны в лог LOG_FILENAME $loggerManager->info('Some info message'); // сообщение будет записано через логгер SimpleTextLogger $loggerManager->error('Some error message', [ // сообщение будет записано в журнал событий 'ITEM_ID' => 1, ]); $loggerManager->warning('Some warning message'); // сообщение будет записано в файл LOG_FILENAME // создаем новый менеджер с логером по-умолчанию и типом test $loggerManager = new LoggerManager(\Bx\Logger\TypedLoggerFactory::createTypedLogger($simpleTextLogger, 'test'));