2011-06-13 55 views
1

我有一個標準的Rails應用程序,它在開發中使用webrick數據庫,sqlite3和 服務器。 Ruby 1.8.6,Rails 2.8.3^H^H3.8,沒什麼特別。Rails:我如何使非Web程序的ActiveRecord日誌記錄保持沉默?

還有那不斷訪問一組數據源的一個單獨的應用程序的WebCrawler, 拉下新項目,munges他們,並使用ActiveRecord寫入更新到同一個數據庫, 。當它運行時,我可以通過加載日誌/ development.log來查看它的活動.log

這是奇怪的事情:每當我的web應用程序第一次,它首先必須等待webrick服務器將所有活動報告到自上次以來的stdout網頁請求, ,然後它可以最終服務於請求。

所以我有兩個問題:

1:我不需要批處理腳本做ActiveRecord的記錄。我試圖在Rails.logging.silence塊中包裝主要語句 ,但這沒有效果。 我如何壓制它?

2:爲什麼webrick會報告ActiveRecord活動,它對 沒有任何幫助?

我想第三個問題是,一旦我將 移動到生產機器上的更好的服務器/ MySQL上,這是否是一個爭論點。

+0

rails 2.8.3?... – user482594 2011-06-13 20:35:56

+0

我建議您嘗試使用mongrel或thin作爲您的本地開發服務器。當緩衝區被刷新時,您可能還會被緩衝的日誌所欺騙,因爲實際上您只是在等待緩衝區被刷新。 – 2011-06-13 20:40:00

回答

0

Webbrick中的開發日誌輸出實際上只是tail -f log/development.log,所以如果你看到的消息不應該在那裏,那麼Webbrick就沒有必要出現問題。

我不確定問題#1的答案是什麼,但問題#3的答案是'是的,這是一個有爭議的問題'。生產日誌中包含的細節是有限的,而開發日誌有很多細節(以幫助開發和調試)。

相關問題