我在Heroku Cedar上部署了一个rails 3.1应用程序.我遇到了日志记录问题.默认的rails日志工作正常,但是当我执行以下操作时:
logger.info "log this message"
在我的控制器中,Heroku不会记录任何内容.当我部署我的应用程序时,我看到heroku消息"注入rails_log_stdout"所以我认为调用记录器应该可以正常工作.将语句放在我的日志中.我也尝试过其他日志级别,如logger.error.什么都行不通.有没有人见过这个?
MBHNYC的答案非常有用,但它很难在不改变代码的情况下更改不同环境中的日志级别.您可以在您的代码中使用此代码environments/production.rb
来表示环境变量并具有合理的默认值:
# https://github.com/ryanb/cancan/issues/511
config.logger = Logger.new(STDOUT)
config.logger.level = Logger.const_get((ENV["LOG_LEVEL"] || "INFO").upcase)
使用此命令设置不同的日志级别:
heroku config:set LOG_LEVEL=error
我只是遇到了同样的问题,通过使用这里的技术解决了:
https://github.com/ryanb/cancan/issues/511
基本上,你需要指定记录器输出到STDOUT,一些宝石干扰记录器并且似乎劫持了功能(在我的情况下可以扫描).
对于懒惰的点击,只需将其放在environment/production.rb中
config.logger = Logger.new(STDOUT)
config.log_level = :info