2016-02-02 44 views
0

如果我登錄了perform()裏面我得到一個漂亮的輸出:如何在rescue_from塊訪問ActiveJob Logger?

def perform(*args) 
    begin 
     MyActivity.run(*args) 
    rescue StandardError => e 
     Rails.logger.debug e 
     raise e 
    end 
    end 

13:55:10 resque.1 | [ActiveJob] [MyJob] [18cd0f78-d784-48a7-a573-0b3aa95c51cc] Connection refused - connect(2) for "fe80::1%lo0" port 3000

如果我登錄內部rescue_from塊我不明白的ActiveJobJobId

rescue_from(StandardError) do |e| 
    Rails.logger.debug e 
end 
標記/標籤

13:55:11 resque.1 | Connection refused - connect(2) for "fe80::1%lo0" port 3000

我認爲在rescue_from塊上Job已經終止,所以我們沒有JobId了。

有沒有辦法像perform內部的日誌那樣得到輸出?

回答

0

剛剛發現,我可以這樣做:

rescue_from(StandardError) do |e| 
    Rails.logger.debug "[ActiveJob] [#{self.class}] [#{job_id}] #{e}" 
    end 

有什麼更好的是,如果我wan't登錄任何錯誤的任何工作,我可以寫裏面application_job.rb此代碼。