运行 rspec 时如何让 Rails.logger 打印到控制台/标准输出? [英] How to get Rails.logger printing to the console/stdout when running rspec?

查看:19
本文介绍了运行 rspec 时如何让 Rails.logger 打印到控制台/标准输出?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

同标题:如何在运行 rspec 时让 Rails.logger 打印到控制台/标准输出?例如.

Same as title: How to get Rails.logger printing to the console/stdout when running rspec? Eg.

Rails.logger.info "I WANT this to go to console/stdout when rspec is running"
puts "Like how the puts function works"

我仍然希望 Rails.logger 也转到 log/test.log.

I still want Rails.logger to go to log/test.log too.

推荐答案

对于 Rails 4,请参阅 this answer.

For Rails 4, see this answer.

对于 Rails 3.x,在 config/environments/test.rb 中配置一个记录器:

For Rails 3.x, configure a logger in config/environments/test.rb:

config.logger = Logger.new(STDOUT)
config.logger.level = Logger::ERROR

这会将测试期间记录的所有错误交错到 STDOUT.您可能希望将输出路由到 STDERR 或使用不同的日志级别.

This will interleave any errors that are logged during testing to STDOUT. You may wish to route the output to STDERR or use a different log level instead.

将这些消息发送到控制台和日志文件需要比 Ruby 内置的 Logger 类更强大的东西.logging gem 会做你想做的事.将其添加到您的 Gemfile,然后在 config/environments/test.rb 中设置两个附加程序:

Sending these messages to both the console and a log file requires something more robust than Ruby's built-in Logger class. The logging gem will do what you want. Add it to your Gemfile, then set up two appenders in config/environments/test.rb:

logger = Logging.logger['test']
logger.add_appenders(
    Logging.appenders.stdout,
    Logging.appenders.file('example.log')
)
logger.level = :info
config.logger = logger

这篇关于运行 rspec 时如何让 Rails.logger 打印到控制台/标准输出?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆