2013-11-21 52 views

回答

22

有一个记录器rotating_file
这里有一个例子:

monolog: 
    handlers: 
     main: 
      type: rotating_file 
      path: %kernel.logs_dir%/%kernel.environment%.log 
      level: debug 
+12

理想的情况下,虽然这应该使用日志来完成在Linux上旋转。 – Seldaek

+0

@Seldaek也许你可以发表一个答案说明它?作为Monolog的创造者,你比我更了解如何实现这一点! ;-) – Florent

+6

作为Monolog的创建者,我知道我不想重写一个永远存在的工具并且工作得很好,但我不是logrotate pro :)无论如何@loicfavory在下面发布了一个logrotate配置示例,我会把它留在那。我只想指出,并非所有的任务都最好用php完成。 – Seldaek

35

在Linux上,你可以使用日志轮播(我不知道是否存在于Windows或者MacOS的其他解决方案)

在/etc/logrotate.d/创建(如:sf2_myapp)的文件,并添加这些内容:

/path/to/your/symfony_app/app/logs/prod.log { 
     daily 
     missingok 
     rotate 14 
     compress 
} 

你应该寻找在谷歌logrotate的更多相关信息

+0

如果你只是旋转一个文件而不使用任何脚本(如postrotate),则不需要sharedscripts。 – mpeters

+4

,如果你想要手动强制旋转一旦你做了这个配置文件,运行'logrotate --force/etc/logrotate.d/sf2_myapp' –

+0

@mpeters:谢谢,我删除了“sharedscripts” – loicfavory