使用Docker运行rake任务在Rails4中记录问题

Eas*_*Liu 1 logging ruby-on-rails rake-task

我的rails4应用程序正在使用docker运行.它运行rake任务以从AWS SQS获取消息.

我遇到的问题是日志无法及时显示在控制台中.在发生异常/错误之前,控制台不会显示任何内容.换句话说,如果我的应用程序工作正常,则没有日志进入控制台.但是如果应用程序出错了,所有日志(信息,警告和错误)都汇集在一起​​!

我已经将config/production.rb配置为打击:

config.logger = Logger.new(STDOUT)
config.logger.level = Logger.const_get('INFO')
config.log_level = :info
Run Code Online (Sandbox Code Playgroud)

我google'rake任务日志无法正常工作',但没什么用处.这是rails日志问题还是rake任务日志问题,或者是docker问题?

希望得到一些建议!

ale*_*pls 5

尝试禁用输出缓冲到STDOUT.您可以通过将此行添加到您的rake任务来执行此操作:

$stdout.sync = true
Run Code Online (Sandbox Code Playgroud)


小智 0

对于 Rails 4.x,日志级别是配置

# Enable stdout logger
config.logger = Logger.new(STDOUT)

# Set log level
config.log_level = :ERROR
Run Code Online (Sandbox Code Playgroud)

记录器级别在 config.log_level 的记录器实例上设置:( https://github.com/rails/rails/blob/v4.2.4/railties/lib/rails/application/bootstrap.rb#L70 )