如何使Rails日志在所有环境中均能正常工作?
puts
在Windows / WEBrick环境中使用日志记录时,输出出现在控制台中,但没有出现在标准日志文件中。Rails.logger
,消息仅记录到日志文件中。当我同时使用这两种方法时,这会在Apache / Passenger环境中造成问题,因为所有控制台输出都被记录到日志文件中,并且每次记录事件都会出现两行。
您不应将其puts
用于实际日志记录。它可能对调试有用,但它不是适当的日志记录机制。
如果您想记录某些内容,则正确的方法是使用Rails.logger
。
Rails.logger.info "something"
默认情况下,记录器仅记录日志文件。某些服务器(例如,Passenger)也用于在控制台中输出日志,但这不是标准行为。
如果您还想在控制台中登录,则可以将记录器设置为在开发环境中具有不同的行为(例如)。只需使用自定义操作创建一个新的记录器。
Rails记录器是一个ActiveSupport::Logger
,它继承自RubyLogger
例如,要在开发中登录控制台,请在开发环境中分配以下记录器
Rails.logger = ActiveSupport::Logger.new(STDOUT)
如果要同时记录到文件和控制台,请创建一个自定义记录器类,以代理每个记录器。调用两个实例,一个实例是文件记录器,另一个实例是控制台记录器。
但是,最简单的想法是tail -f
访问另一个控制台选项卡中的开发日志以获取对日志条目的访问。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句