| 12345678910111213141516171819202122232425262728293031323334 |
- <?php
- namespace App\Logging;
- use Monolog\Logger;
- /**
- * Handler some critical,alert,emergency events
- *
- * Class CriticalFormatter
- * @package App\Logging
- */
- class CriticalFormatter
- {
- public function __invoke($logger)
- {
- /** @var Logger $logger */
- //$logger->popHandler();
- //也可以在前置或后置设置一些通知渠道
- //$logger->setHandlers([new EmailHandler()]); //TODO 这里设置处理器
- //上面设置完处理器会覆盖原有处理器,原来的默认是流式写入(I/O磁盘)
- $logger->setExceptionHandler(function ($e){
- //比如 异常$e->getMessage()中存在Permission denied就是文件权限异常
- //用switch捕获各种写入失败场景
- //普通日志也应做此处理,记录应该分级分块
- //logs表考虑下是否启用
- //写入失败时,会再此处处理下
- });
- }
- }
|