我正在寻找一种解决方案,该解决方案允许我每天为Rails应用程序创建一个新的日志文件。
目标是从标准production.log
变为
production.2019-06-01.log
production.2019-06-02.log
...等
最新的日志是今天的日期。
我知道logrotate
的申请,但是问题是production.log
是当前的,production.log.1
应该是昨天。因此,如果您想查找几周前某个特定日期发生的事情,则需要注意将其放入哪个日志文件。
答案 0 :(得分:4)
您尝试过吗:
logger = Logger.new('production.log', 'daily') # or 'weekly', 'monthly'
要获得所需的输出,请使用:
t = Time.now()
file = 'production.' + (t.strftime("%m-%d-%y")) + '.log'
logger = Logger.new(file, 'daily') # or 'weekly', 'monthly'
答案 1 :(得分:3)
您可以在此处https://linux.die.net/man/8/logrotate上配置logrotate以执行所需的检查daily
和dateext
选项。
您也可以使用更现代的方法,并使用ELK https://www.elastic.co/elk-stack之类的东西在elasticsearch中索引日志,并使用kibana仪表板轻松搜索您的日志。
答案 2 :(得分:0)
所有好的答案!我目前在tomcat上运行,因此我使用了默认的Java日志记录类来执行此操作。