突然间,我的Rails 4.2应用程序没有向development.log写任何内容。
绝对没有!
我尝试检查正在使用的正确环境,重新启动服务器,检查可能与记录器交互的gem,检查权限logger.flush
和rake log:clean
。
日志文件现在完全为空,并且没有写入任何内容。
正在运行rails s
:
=> Booting WEBrick
=> Rails 4.2.0 application starting in development on http://localhost:3000
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
[2015-03-14 18:49:57] INFO WEBrick 1.3.1
[2015-03-14 18:49:57] INFO ruby 2.1.5 (2014-11-13) [x86_64-darwin14.0]
[2015-03-14 18:49:57] INFO WEBrick::HTTPServer#start: pid=3963 port=3000
Stackoverflow上有很多类似的问题,但没有一个提供了我的案例中有效的答案。
我不知道会导致这种情况或者如何系统地调试。
我应该采取什么措施?
答案 0 :(得分:22)
rails_12factor
显然覆盖了config.logger。
请参阅:https://github.com/heroku/rails_stdout_logging/blob/master/lib/rails_stdout_logging/rails3.rb#L7
我从开发环境中移除了这个gem(我实际上只需要在部署的环境中使用它),现在一切正常。
要将gem放入生产中,它需要位于这样的gem环境组中:
# This is override development.log output and should only go in production.
group :production do
gem 'rails_12factor'
end
感谢@maxd帮助我思考正确的方向。
答案 1 :(得分:1)
我认为您的问题可能由以下因素引起:
您设置为高日志级别。检查您的application.rb
和environments\*.rb
文件:
# Set to :debug to see everything in the log.
config.log_level = :error
您设置自定义日志记录。查看application.rb
,environments/*.rb
以及initializers/*.rb
中的所有文件:
# Use a different logger for distributed setups.
config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new)
这两个步骤可以帮助您调查问题并进行修复。
答案 2 :(得分:0)
如果在AWS(或类似)中,您必须确保您的日志目录具有写访问权。
答案 3 :(得分:0)
将以下行添加到config/environments/development.rb
config.log_level = :debug
重启服务器