我在我的應用程序中實現了python日誌記錄,並且我希望能夠利用「默認」根設置。我想使用根設置,因爲我不想在配置文件中定義每個模塊的記錄器。禁用特定包的日誌記錄
當我打開根日誌記錄器的DEBUG級日誌記錄時,我遇到了QPID Python客戶端API的問題。我的日誌文件會充斥着qpid調試語句:
2011-03-16 09:16:18664 - qpid.messaging.io.ops - 調試 - 發[8de6b2c]:..
2011- 03-16 09:16:18,667 - qpid.messaging.io.raw - DEBUG - ..
2011-03-16 09:16:18,668 - qpid.messaging.io.raw - DEBUG - READ [8de6b2c] :..
2011-03-16 09:16:18668 - qpid.messaging.io.ops - 調試 - ..
等。
所以兩個主要問題:
1)有沒有一種方法,使*只是我的模塊使用,而不限定每個模塊的記錄程序?換句話說,是否有一種方法可以共享「記錄器設置」,因此,不必爲每個記錄器定義記錄器部分,是否有一種方法來默認設置?
喜歡的東西:
[logger_shared_settings]
loggers = logger_A,logger_B,logger_C,logger_D
level=DEBUG
2)或如何能濾除通過配置文件中qpid包日誌記錄?
這裏是log.conf文件:
[loggers]
keys=root
[handlers]
keys=consoleHandler,fileHandler,nullHandler
[formatters]
keys=simpleFormatter
[logger_root]
level=DEBUG
handlers=consoleHandler,fileHandler
[handler_consoleHandler]
class=StreamHandler
level=DEBUG
formatter=simpleFormatter
args=(sys.stdout,)
[handler_fileHandler]
class=logging.handlers.RotatingFileHandler
level=DEBUG
formatter=simpleFormatter
args=('out.log',)
這裏是我試圖避免:
[loggers]
keys=root, a, b, c, d
[handlers]
keys=consoleHandler,fileHandler,nullHandler
[formatters]
keys=simpleFormatter
[logger_root]
level=ERROR
handlers=nullHandler
[logger_a]
level=DEBUG
handlers=consoleHandler,fileHandler
[logger_b]
level=DEBUG
handlers=consoleHandler,fileHandler
[logger_c]
level=DEBUG
handlers=consoleHandler,fileHandler
這個工程,jw你知道有什麼辦法做共享集吊環? – Nix
嗯...什麼意思是「共享設置」? – oxyum
有點像根記錄器,但有一個不同的部分,我可以將這些模塊應用到我的應用程序中。 – Nix