簡體   English   中英

Heroku上的Rails rake任務:禁用在屏幕上顯示SQL日志

[英]Rails rake task on Heroku: Disable displaying the SQL log on the screen

我在Heroku Cedar堆棧中運行rails 3.2應用程序。

當我在本地執行涉及查詢數據庫的rake任務時,屏幕日志不會顯示SQL查詢的詳細信息。

另一方面,當我在Heroku部署的應用程序 (heroku run rake ...) 運行相同的任務 ,rake任務執行的每個查詢都有一個詳細的輸出。 我想禁用屏幕上顯示的這些細節 可能嗎?

謝謝您的幫助!

我建議以detached模式運行這些任務。 這將阻止終端中的輸出,但仍然有輸出(寫入STDOUTSTDERR任何內容)到Heroku日志文件。

這將通過以下方式運行:

heroku run:detached rake ...

有關於此的良好文檔也可以幫助您。 希望這是你正在尋找的。

如果將此代碼放在rake任務中,則可以禁用日志:

dev_null = Logger.new("/dev/null")
Rails.logger = dev_null
ActiveRecord::Base.logger = dev_null

您可以將代碼包裝在Rails.logger.silence塊中:

task thing_doer: :environment do
  Rails.logger.silence { ThingDoer.call }
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM