当运行rspec时,如何获取Rails.logger打印到控制台/ stdout? [英] How to get Rails.logger printing to the console/stdout when running rspec?

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

问题描述

与标题相同:运行rspec时如何获取 Rails.logger 打印到控制台/ stdout?例如:

  Rails.logger.info我希望这可以在rspec运行时去控制台/ stdout
puts像puts函数一样工作

我还是想要 Rails.logger

解决方案 div>

对于Rails 4,请参见此答案。



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




b $ b

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

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



将这些消息发送到控制台和日志文件需要比Ruby的内置更强大-in Logger 类。 日志记录 gem可以做您想要的。将它添加到您的 Gemfile ,然后在 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


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"

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

解决方案

For Rails 4, see this answer.

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

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

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.

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打印到控制台/ stdout?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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