当运行rspec时,如何获取Rails.logger打印到控制台/ stdout? [英] How to get Rails.logger printing to the console/stdout when running rspec?
问题描述
与标题相同:运行rspec时如何获取 Rails.logger
打印到控制台/ stdout?例如:
Rails.logger.info我希望这可以在rspec运行时去控制台/ stdout
puts像puts函数一样工作
我还是想要 Rails.logger
对于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屋!