使用 SemanticLogger gem 在 rails 控制台中显示 SQL ActiveRecord 查询
Show SQL ActiveRecord queries in rails console using SemanticLogger gem
SemanticLogger v4.4.0
gem 已添加到存储库,现在使用 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
尝试了不同的设置标志,但没有找到像以前那样 returns 查询的标志,现在检测性能不佳的查询更加复杂。
作为 "partial-fix" 我目前将其添加到一个组中并跳过 develop
:
gem 'rails_semantic_logger', group: %i[production qa]
这适用于我的本地,但我希望我可以让它适用于所有环境。
这取决于 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"
SemanticLogger.default_level = :trace
在控制台中对我没有帮助。
我发现了这个问题:https://github.com/reidmorrison/rails_semantic_logger/issues/83
SemanticLogger v4.4.0
gem 已添加到存储库,现在使用 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
尝试了不同的设置标志,但没有找到像以前那样 returns 查询的标志,现在检测性能不佳的查询更加复杂。
作为 "partial-fix" 我目前将其添加到一个组中并跳过 develop
:
gem 'rails_semantic_logger', group: %i[production qa]
这适用于我的本地,但我希望我可以让它适用于所有环境。
这取决于 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"
SemanticLogger.default_level = :trace
在控制台中对我没有帮助。
我发现了这个问题:https://github.com/reidmorrison/rails_semantic_logger/issues/83