【问题标题】:Custom logger in Rails 3?Rails 3中的自定义记录器?
【发布时间】:2011-09-08 04:05:53
【问题描述】:

我想为我的应用程序定制一个记录器,它当然记录到不同的文件,有人问了一个问题:Setting up the logger in rails 3

但我想要一个记录器,我可以用我自己的类名调用它:

StatusLogger.info "something happend!!!"

我该怎么做?

【问题讨论】:

  • 为什么要这样做,最好有一个日志文件并对其进行解析以查找事件。
  • 我不知道,我想这是一个好点,但就像我有这些通过 cron 运行的 rake 任务一样,我只想在它们发生时记录下来,这样我就可以回去查看它们发生的时间和运行的任务的状态。解决这个问题的好方法是什么?
  • 不会 cron 将 cronjob 的输出通过电子邮件发送给 root?无论如何,这似乎是处理手头情况的好方法。当您习惯于处理 web 应用程序时,很难诊断和管理 Cronjobs。也许问服务器故障?

标签: ruby-on-rails


【解决方案1】:

你可以用这段代码做到这一点

logfile = File.open('/path/to/log.log', 'a')  
StatusLogger = Logger.new(logfile)
StatusLogger.info 'Hello World!'

您很可能会在初始化程序文件中进行配置,或者如果您愿意,也可以在环境文件中进行配置。

【讨论】:

  • 嘿德文,谢谢,当我尝试这个时,它似乎工作但日志文件中没有任何内容,想法?
【解决方案2】:

你的意思是,就像在 application.rb 中一样:

StatusLogger = ActiveSupport::BufferedLogger.new(Rails.root.join('log/status.log'))

【讨论】:

  • 这个代码块在一个名为 config/initializer/log.rb 的初始化程序中 # 例如
  • 注意:你可以把它放在你的应用程序的任何地方,而不仅仅是在application.rb,只要你记得将它分配给一个变量(而不是一个常量,如这里所示)
猜你喜欢
  • 2013-01-09
  • 2017-12-23
  • 1970-01-01
  • 2022-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多