0
我試圖將stderr
和stdout
存儲在我們的數據庫中,以用於我們後臺進程的未來調試目的。我還希望捕獲像透明代理一樣透明,我的意思是我希望仍然有stderr
和stdout
輸出到常規記錄器加上我們的數據庫之一。
我有這樣的代碼:
class Message
include Mongoid::Document
field :stdout
field :stderr
def enable_capture_output
@previous_stderr, $stderr = $stderr, StringIO.new
@previous_stdout, $stdout = $stdout, StringIO.new
end
def disable_and_save_captured_output
self.stdout = $stdout.string
self.stderr = $stderr.string
$stderr = @previous_stderr
$stdout = @previous_stdout
end
end
但它不工作那麼好。 :(
使用:Rails的3.2.11和3.0.23 Mongoid與DelayedJob
請解釋「不好用」的含義。它可以工作嗎?出了什麼問題?是不是忘記調用'self.save'? – Leopd
我節省後者,這是工作!我只是想在調用我的方法時看到調試信息,而不是等待結束,並保持記錄。 – Hartator