我需要添加一個像「verbose」或「traffic」的自定義日誌級別給ruby記錄器,該怎麼辦?如何將自定義日誌級別添加到紅寶石記錄器中?
9
A
回答
0
您可以通過重載Logger class
3
日誌級別創建自己的記錄器在logger.rb
定義無非是整型常量:
# Logging severity.
module Severity
DEBUG = 0
INFO = 1
WARN = 2
ERROR = 3
FATAL = 4
UNKNOWN = 5
end
您可以與任何級別的日誌消息像使用Logger#add
方法:
l.add 6, 'asd'
#=> A, [2010-02-17T16:25:47.763708 #14962] ANY -- : asd
3
您自己的記錄器只需要覆蓋Logger#format_severity
的方法,像這樣:
class MyLogger < Logger
SEVS = %w(DEBUG INFO WARN ERROR FATAL VERBOSE TRAFFIC)
def format_severity(severity)
SEVS[severity] || 'ANY'
end
def verbose(progname = nil, &block)
add(5, nil, progname, &block)
end
end
+0
IMO,這是一個更好的答案,因爲它避免了Ruby核心的猴子補丁。 + – sethvargo 2014-08-22 17:55:44
4
您可以簡單地添加到Logger類:
require 'logger'
class Logger
def self.custom_level(tag)
SEV_LABEL << tag
idx = SEV_LABEL.size - 1
define_method(tag.downcase.gsub(/\W+/, '_').to_sym) do |progname, &block|
add(idx, nil, progname, &block)
end
end
# now add levels like this:
custom_level 'TRAFFIC'
custom_level 'ANOTHER-TAG'
end
# using it:
log = Logger.new($stdout)
log.traffic('testing')
log.another_tag('another message here.')
2
如果你開始需要一堆定製的東西,它可能是值得一試log4r,這是一個靈活的日誌記錄庫,可以讓你輕鬆地做一堆有趣/有用的東西。
0
這是一個古老的問題,但由於它在谷歌上出現如此之高,我認爲有必要更正答案。您實際上可以使用Logging.init
方法。這裏是你將如何這是通過使用logging
寶石的2.0.0
添加trace
日誌級別
require 'logging'
Logging.init %w(trace debug info warn error fatal)
Logging.logger.root.level = :trace
Logging.logger.root.add_appenders Logging.appenders.stdout
Logging.logger['hello'].trace 'TEST'
。
相關問題
- 1. 如何在log4j中添加自定義日誌記錄級別
- 2. 紅寶石AWS SDK忽略記錄日誌級別
- 3. 谷歌日誌記錄中的自定義日誌級別
- 4. ZF2日誌記錄:將自定義信息添加到日誌記錄輸出
- 5. Jboss 7,如何在standalone.xml中添加自定義日誌級別
- 6. 紅寶石記錄器 - 何時關閉日誌文件
- 7. 如何將日誌記錄添加到自定義級別的模塊中的類
- 8. django添加自定義日誌記錄到芹菜日誌記錄
- 9. 自定義as_json紅寶石
- 10. 在紅寶石將日期到自定義格式
- 11. 如何在Python中的自定義logging.Handler中獲取日誌記錄的級別?
- 12. Selenium日誌如何訪問紅寶石?
- 13. 在log4javascript中添加自定義日誌級別
- 14. Python日誌記錄級別
- 15. Android日誌記錄級別
- 16. JavaScript日誌記錄庫(日誌級別)
- 17. 紅寶石有日誌查看器嗎?
- 18. Java日誌記錄 - 如何將輸出重定向到記錄器的自定義日誌文件?
- 19. 如何從紅寶石2.2.3升級到紅寶石2.3.0
- 20. 將類添加到image_tag紅寶石
- 21. 如何在Tomcat中將級別日誌記錄設置爲DEBUG?
- 22. NLog自定義日誌級別值
- 23. CocoaLumberjack自定義日誌級別
- 24. log4net:自定義日誌級別
- 25. 基於日誌記錄級別的SpringBoot日誌記錄配置
- 26. 調整apache公共日誌記錄的日誌記錄級別?
- 27. Glassfish記錄到一個空記錄器 - 如何設置日誌級別呢?
- 28. 如何格式化紅寶石記錄器到這個?
- 29. 如何將日誌行包裝在GWT自定義日誌記錄區域中?
- 30. 紅寶石添加日曆月
有沒有簡單的方法,沒有寫很多代碼? – turri 2010-02-17 14:56:38
@turri不是我所知道的。它看起來像(Logger :: INFO等)中的級別非常多。也許還有另一種方式,但現在我想不出來 – marcgg 2010-02-17 15:18:59