【发布时间】:2013-02-19 09:04:46
【问题描述】:
我的 Rails.logger 运行良好,非常感谢,但我也希望它写入 STDOUT(也就是说,不是放弃记录到日志文件,而是“Tee”它到标准输出)。
这在 Rails 3 中可行吗?
【问题讨论】:
-
tail -f $YOUR_LOG_FILE有什么问题?
标签: ruby-on-rails ruby logging
我的 Rails.logger 运行良好,非常感谢,但我也希望它写入 STDOUT(也就是说,不是放弃记录到日志文件,而是“Tee”它到标准输出)。
这在 Rails 3 中可行吗?
【问题讨论】:
tail -f $YOUR_LOG_FILE 有什么问题?
标签: ruby-on-rails ruby logging
这个简单的委托记录器应该(*)解决问题:
class MultiLogger
def initialize *loggers
@loggers = loggers
end
def method_missing *args, &blk
@loggers.each {|l| l.send *args, &blk }
end
def respond_to_missing? *args
@loggers.all? {|l| l.respond_to? *args }
end
end
Rails.logger = MultiLogger.new Rails.logger, Logger.new($stdout)
(*) 我没试过
【讨论】:
tail -f?
ObjectSpace#each_object 欺骗非记录器日志记录,以查找对您的日志文件打开的所有File 对象并将它们重新打开到管道|tee logfile。跨度>