2010-11-05 43 views
11

在我的.irbrc文件中,我需要「記錄器」以便在腳本/控制檯中查看ActiveRecords時查看執行的SQL。如何在腳本/控制檯中禁用記錄器

我的問題是,我如何暫時關閉記錄器,因此它不顯示SQL只是爲了一些ActiveRecord查詢?

回答

14

要切換記錄在這裏腳本/控制檯是我使用的:

def show_log 
    change_log(STDOUT) 
end 

def hide_log 
    change_log(nil) 
end 

def change_log(stream, colorize=true) 
    ActiveRecord::Base.logger = ::Logger.new(stream) 
    ActiveRecord::Base.clear_all_connections! 
    ActiveRecord::Base.colorize_logging = colorize 
end 
+0

這正是我之後,謝謝! – Coderama 2010-11-06 12:39:40

+6

很酷,我喜歡這個!儘管對Rails 3來說,你需要取出change_log方法的最後一行,並且返回一個零方法將給出一個更清晰的「toggle」輸出。 – janechii 2011-09-26 22:25:07

1

您可以通過在生產模式下運行或通過調整您的config目錄中的development.rb環境文件中的記錄器文件來關閉記錄器,前提是您實際上正在本地主機上運行開發程序。

+0

感謝您的答覆。但是我在腳本/控制檯中臨時解決方案後。例如我在腳本/控制檯中,正在努力解決對記錄器的需求,但是接下來我想停止記錄器顯示僅用於我即將運行的一個AR查詢的SQL。我將如何關閉記錄器,然後在腳本/控制檯中將其全部重新打開? – Coderama 2010-11-05 02:53:59

+0

是的,我發佈後看到了。我不知道怎麼做只是爲了幾個SQL行:( – s84 2010-11-05 02:56:32

+1

檢查你的rails應用程序中的'scripts'文件夾,我認爲你可以關閉'console'使用的記錄器。 – s84 2010-11-05 02:58:29

相關問題