如何每天在Rails中登录到新文件?

时间:2019-06-13 19:48:42

标签: ruby-on-rails logging

我正在寻找一种解决方案,该解决方案允许我每天为Rails应用程序创建一个新的日志文件。

目标是从标准production.log变为

production.2019-06-01.log

production.2019-06-02.log

...等

最新的日志是今天的日期。

我知道logrotate的申请,但是问题是production.log是当前的,production.log.1应该是昨天。因此,如果您想查找几周前某个特定日期发生的事情,则需要注意将其放入哪个日志文件。

3 个答案:

答案 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以执行所需的检查dailydateext选项。 您也可以使用更现代的方法,并使用ELK https://www.elastic.co/elk-stack之类的东西在elasticsearch中索引日志,并使用kibana仪表板轻松搜索您的日志。

答案 2 :(得分:0)

所有好的答案!我目前在tomcat上运行,因此我使用了默认的Java日志记录类来执行此操作。