在 Symfony2 中使用 Monolog 进行日志旋转
Posted
技术标签:
【中文标题】在 Symfony2 中使用 Monolog 进行日志旋转【英文标题】:Log rotating with Monolog in Symfony2 【发布时间】:2013-12-06 06:01:51 【问题描述】:我想知道是否有可能在 Symfony2 中配置 Monolog 以每天创建一个新的日志文件,例如:2013-11-21-prod.log。
【问题讨论】:
【参考方案1】:有一个叫rotating_file
的记录器。
这是一个示例配置:
monolog:
handlers:
main:
type: rotating_file
path: %kernel.logs_dir%/%kernel.environment%.log
level: debug
【讨论】:
@Seldaek 也许您可以发布一个答案来说明它?作为 Monolog 的创建者,您比我更了解如何实现这一目标! ;-) 作为 Monolog 的创建者,我知道我不想重写一个一直存在并且运行良好的工具,但我不是 logrotate pro :) 无论如何@loicfavory 发布了一个示例 logrotate 配置在下面,所以我会留在那里。我只是想指出,并非所有任务都最好用 php 完成。 这正是我想要的。非常感谢。 如果它也有压缩旧日志的选项会更好。 :)【参考方案2】:在linux上,可以使用logrotate(不知道windows或者macos上是否存在其他解决方案)
在 /etc/logrotate.d/ 中创建一个文件(例如 sf2_myapp)并添加此内容:
/path/to/your/symfony_app/app/logs/prod.log
daily
missingok
rotate 14
compress
您应该在 Google 上查找 logrotate 以了解更多信息
【讨论】:
如果您只是旋转一个文件并且没有使用任何脚本(如 postrotate),则不需要共享脚本。 如果您想在制作此配置文件后手动强制旋转,请运行logrotate --force /etc/logrotate.d/sf2_myapp
以上是关于在 Symfony2 中使用 Monolog 进行日志旋转的主要内容,如果未能解决你的问题,请参考以下文章
Symfony2/Monolog:日志级别 - 仅显示 app.INFO?
Symfony2 Monolog 配置为使用 raven 处理程序(Sentry)
如何在 Symfony 中对 Monolog 消息进行高级过滤?
配置 symfony monolog 保留 apache 日志