我想知道是否有真正統一的日誌系統可以支持Rails 和延遲工作,並且相對容易設置。Ruby是否有統一的日誌記錄系統?
我希望能夠登錄到我的應用程序(Rails,延遲工作等)中的任何執行上下文相同的服務器/文件,即使我目前不在Rails上下文中。
愛上Rails記錄器,但在Resque作業中無法登錄。有任何想法嗎?
我想知道是否有真正統一的日誌系統可以支持Rails 和延遲工作,並且相對容易設置。Ruby是否有統一的日誌記錄系統?
我希望能夠登錄到我的應用程序(Rails,延遲工作等)中的任何執行上下文相同的服務器/文件,即使我目前不在Rails上下文中。
愛上Rails記錄器,但在Resque作業中無法登錄。有任何想法嗎?
你的意思是一個文件記錄器,類似於syslog?
Logger可以執行日誌滾動,處理嚴重性級別,並在很多Ruby模塊中用於日誌記錄。您可以定義要登錄的文件的名稱,或使用STDOUT/STDERR或IO流。
syslog的文檔相當準確,但您可以通過瀏覽其源代碼或閱讀Ruby Syslog README來獲取信息。
我必須記錄發生在由resque作業運行的gem中發生的事情。要記錄正在發生的事情到Rails的數據庫中,我做到以下幾點:
#in gem:
class Foo
def self.logger
@@logger ||= Logger.new(nil)
end
def self.logger=(logger)
@@logger = logger
end
def self.logger_reset
self.logger = Logger.new(nil)
end
def self.logger_write(obj_id, message, method = :info)
self.logger.send(method, "|%s|%s|" % [obj_id, message])
end
end
#in rails in initializers
Foo.logger = MyRailsLogger.new
#in in rails in lib or in model if it uses ActiveRecord
class MyRailsLogger
def info
...
end
...
end
這樣我就可以登錄東西在不同的過程中發生的事情,也由富實例的OBJECT_ID過濾日誌,因此只有相關的數據被記錄。