[英]Python sockethandler logging not working for some modules
我有一個奇怪的問題。 我正在使用logging.config設置我的記錄器以使用套接字處理程序。 一切正常,除了2/10 +模塊似乎未記錄任何內容。 好的,我的意思是我會在日志服務器上看到除兩者之外的所有內容的輸出。 太奇怪了,它只對某些人有效。 我正在使用以下行初始化每個模塊的記錄器:
import logging
import logging.config
logging.config.fileConfig(config.main_log_conf)
logger = logging.getLogger("CAKE")
我以為問題可能是記錄器名稱沖突,因此上面的CAKE無效,但是那沒用。
以下是我正在使用的conf文件。
[loggers]
keys=root
[handlers]
keys=socketHandler
[formatters]
keys=simpleFormatter
[logger_root]
handlers=socketHandler
level=DEBUG
[handler_socketHandler]
class=handlers.SocketHandler
level=DEBUG
formatter=simpleFormatter
args=('localhost', handlers.DEFAULT_TCP_LOGGING_PORT)
[formatter_simpleFormatter]
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s
datefmt=
不要從每個模塊調用fileConfig()
。 通常應該只有一個調用才能在程序(進程)中設置日志記錄配置,這是從if __name__ == '__main__'
子句調用的。 還要注意,通常應該將disable_existing_loggers=False
傳遞給fileConfig
僅出於向后兼容的原因,默認值為True
。 有關更多信息,請參見此處 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.