1
很多類似的問題都會詢問如何在控制檯窗口中隱藏sql日誌,答案建議更改Active Record的日誌級別或完全關閉AR日誌記錄。在rails 4控制檯中,如何將所有sql活動記錄到文件中,但不記錄到控制檯輸出中?
但是我仍然希望AR記錄所有內容,我只想將其記錄到文件中,而不是記錄到控制檯輸出窗口(因爲它使控制檯嘈雜,所以我看不到我的手動日誌)。
我該如何實現我想要的?
很多類似的問題都會詢問如何在控制檯窗口中隱藏sql日誌,答案建議更改Active Record的日誌級別或完全關閉AR日誌記錄。在rails 4控制檯中,如何將所有sql活動記錄到文件中,但不記錄到控制檯輸出中?
但是我仍然希望AR記錄所有內容,我只想將其記錄到文件中,而不是記錄到控制檯輸出窗口(因爲它使控制檯嘈雜,所以我看不到我的手動日誌)。
我該如何實現我想要的?
這ActiveRecord::Railtie代碼是什麼說廣播記錄信息到控制檯:
# When loading console, force ActiveRecord::Base to be loaded
# to avoid cross references when loading a constant for the
# first time. Also, make it output to STDERR.
console do |app|
require "active_record/railties/console_sandbox" if app.sandbox?
require "active_record/base"
console = ActiveSupport::Logger.new(STDERR)
Rails.logger.extend ActiveSupport::Logger.broadcast console
end
這麼一兩件事,當你第一次進入控制檯,你可以做的是設置ActiveRecord::Base.logger
到一個新的記錄器沒有廣播它的消息到控制檯。例如:
ActiveRecord::Base.logger = ActiveSupport::Logger.new("log/development.log")
「log/development.log」可以更改爲您想要發送SQL輸出的任何位置。