码迷,mamicode.com
首页 > 其他好文 > 详细

记一次Monolog的BufferHandler使用

时间:2019-03-20 01:16:11      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:日志文件   文件   redis   ref   mat   shu   target   vendor   for   

laravel中可以设置自定义的日记channel(config/logging中设置),按照laravel-china的一篇文章,把log按一定格式并且以批量的方式写入日志文件:

https://learnku.com/articles/3567/monolog-optimization-and-elk-friendly-log-format

这里需要注意,对于BufferHandler是不适合在队列中使用的,从Log::method追踪Monolog源码(vendor\monolog\monolog\src\Monolog\Handler\BufferHandler)可以发现

对于最后的批量操作,Monolog是register_shutdown_function()了一个close()方法的,即在脚本结束才会调用close()并在其中调用flush()把日记刷到文件中

但redis队列中的php脚本启动后,执行完任务并不会结束,导致没有机会调用close(),最终会发现任务执行完了,但是Log却没有任何反应

所以注意BufferHandler不适合在队列中使用

记一次Monolog的BufferHandler使用

标签:日志文件   文件   redis   ref   mat   shu   target   vendor   for   

原文地址:https://www.cnblogs.com/SHQHDMR/p/10562193.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!