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

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.

推荐答案

关于Rails 4,请参见this answer.

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

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

这会将测试期间记录的任何错误交错到标准输出.您可能希望将输出路由到STDERR,或者使用不同的日志(log)级别.

将这些消息发送到控制台和日志(log)文件需要比Ruby的内置Logger类更健壮的东西.logging颗Ruby 可以满足你的需求.将其添加到Gemfile中,然后在config/environments/test.rb中设置两个appender:

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

Ruby-on-rails相关问答推荐

Rails 7通过引擎将方法自动加载到控制器中的方法

Rails 5.1.7:Sprockets::Rails::Helper::AssetNotFound

Rails 7 - has_many_attached 在加载新附件时删除旧附件

向现有控制器添加操作(Ruby on Rails)

在允许用户使用设计(rails)登录之前判断用户是否处于活动状态

上传图片 Ruby on Rails

基于 2 列定义唯一主键

为什么在保存对象后使用重新加载方法? (Hartl Rails Tut 6.30)

FactoryGirl + Faker - 为数据库种子数据中的每个对象生成相同的数据

Rails 模型:您将如何创建一组预定义的属性?

默认情况下,如何在 Rails 中使 cookie 安全(仅限 https)?

如何在 RoR 中实现成就系统

Heroku 错误 R14(超出内存配额):我该如何解决?

在 rake 任务期间关闭观察者的简单方法?

Ruby 根据属性在数组中查找并返回对象

以最Ruby 风格计算 ActiveSupport:TimeWithZone 天数的差异?

ActiveRecord 中多列的索引

Rails - 如何在用户登录时覆盖设计 SessionsController 以执行特定任务?

从 Rails 中的 ActiveRecord::RecordNotFound 救援

Date.current 和 Date.today 有什么区别?