slim使用logger日志自定义输出格式
最近用了php的一个轻量级框架slim,之后采用了logger的日志包作为日志扩展,使用之后发现logger默认生成的日志格式不是很符合自己的需求(主要是不大喜欢),后面呢简单看了一下logger类,就重新定义了一下。下面是slim框架使用ContainerBuilder的写法,如果不需要的话直接去掉containerBuilder的写法即可
$containerBuilder->addDefinitions([ "logger"=>function(ContainerInterface $ci){ $dateFormat = "H:i:s"; // 定义输出的时间格式,默认输出格式是:Y-m-d\TH:i:sP $output = "[%datetime%] [%level_name%] %message% %context% \n"; // 定义输出的内容格式 //$output = "[%datetime%] %channel%.%level_name%: %message% %context% %extra%\n"; // 默认输出格式 $formatter = new \Monolog\Formatter\LineFormatter($output,$dateFormat); $settings = $ci->get('settings'); $loggerSettings = $settings['logger']; $logger = new Logger($loggerSettings['name']); $processor = new UidProcessor(); $logger->pushProcessor($processor); $handler = new StreamHandler($loggerSettings['path'],$loggerSettings['level']); $handler->setFormatter($formatter); $logger->pushHandler($handler); return $logger; } ]);
这里解释一下几个变量
datetime // 时间 channel // 设置的应用名 level_name // 日志等级(debug、info、notice、warning、error、critical、alert、emergency) message //
版权声明:本文由“憨小猪”发布,如需转载请注明出处。