使用SemanticLogger gem在Rails控制台中显示SQL ActiveRecord查询

问题描述 投票:2回答:1

SemanticLogger v4.4.0宝石已添加到存储库,现在使用rails console时,所有ActiveRecord查询都消失了:

之前:

> MyModel.last
  MyModel Load (3.4ms)  SELECT  `my_models`.* FROM `my_models`  ORDER BY `my_models`.`id` DESC LIMIT 1
=> #<MyModel:0x00007ff 
  id: ...

之后:

> MyModel.last
=> #<MyModel:0x00007ff
  id: ...

我为SemanticLogger尝试了不同的设置标志,但没有找到像以前一样返回查询的标志,现在要检测性能较差的查询更加复杂。

作为“部分修补程序”,我目前将其添加到组中,并跳过develop

gem 'rails_semantic_logger', group: %i[production qa]

这在我的本地计算机上有效,但我希望我可以使其在所有环境下都能正常工作。

ruby-on-rails ruby rails-activerecord rails-semantic-logger
1个回答
3
投票
取决于semantic_logger配置,但您应该尝试

SemanticLogger.default_level = :trace

((您可以在控制台中运行它,并且如果可行,请将其添加到您的Initializers / development.rb或local.rb中)

就我而言,我现在将看到输出,但为JSON:

> 2020-02-26 11:26:24.094050 D [2220:11016600] (220.0ms) ActiveRecord -- { :sql => "SELECT COUNT(*) FROM \"things\"" }

所以我需要添加我的local.rb(不确定如何在控制台中动态完成此操作)

Rails.application.configure do config.rails_semantic_logger.semantic = false end

2020-02-26 11:31:34.972958 D [6280:14940580] ActiveRecord::Base -- (198.6ms) SELECT COUNT(*) FROM "things"

© www.soinside.com 2019 - 2024. All rights reserved.