轉 使用Python的logging.config.fileConfig配置日志


Python的logging.config.fileConfig方式配置日志,通過解析conf配置文件實現。文件 logglogging.conf 配置如下:

[loggers]
keys=root,fileLogger,rotatingFileLogger

[handlers]
keys=consoleHandler,fileHandler,rotatingFileHandler

[formatters]
keys=simpleFormatter

[logger_root]
level=DEBUG
handlers=consoleHandler

[logger_fileLogger]
level=DEBUG
# 該logger中配置的handler
handlers=fileHandler
# logger 的名稱
qualname=fileLogger
propagate=0

[logger_rotatingFileLogger]
level=DEBUG
# 這樣配置,rotatingFileLogger中就同時配置了consoleHandler,rotatingFileHandler
# consoleHandler 負責將日志輸出到控制台
# rotatingFileHandler 負責將日志輸出保存到文件中
handlers=consoleHandler,rotatingFileHandler
qualname=rotatingFileLogger
propagate=0

[handler_consoleHandler]
class=StreamHandler
level=DEBUG
formatter=simpleFormatter
args=(sys.stdout,)

[handler_fileHandler]
class=FileHandler
level=DEBUG
formatter=simpleFormatter
args=('logs/logging.log', 'a')

[handler_rotatingFileHandler]
class=handlers.RotatingFileHandler
level=WARNING
formatter=simpleFormatter
args=("logs/rotating_logging.log", "a", 1*1024*1024, 5)

[formatter_simpleFormatter]
#format=%(asctime)s - %(name)s - %(levelname)s - %(message)s
format=%(asctime)s - %(module)s - %(thread)d - %(levelname)s : %(message)s
datefmt=%Y-%m-%d %H:%M:%S
以上配置文件主要包含以下幾部分:

loggers : 配置logger信息。必須包含一個名字叫做root的logger,當使用無參函數logging.getLogger()時,默認返回root這個logger,其他自定義logger可以通過 logging.getLogger("fileLogger") 方式進行調用
handlers:定義聲明handlers信息。常用的handlers包括 StreamHandler(僅將日志輸出到kong控制台)、FileHandler(將日志信息輸出保存到文件)、RotaRotatingFileHandler(將日志輸出保存到文件中,並設置單個日志wenj文件的大小和日志文件個數)
formatter : 設置日志格式
logger_xxx : 對loggers中聲明的logger進行逐個配置,且要一一對應
handler_xxx : 對handlers中聲明的handler進行逐個配置,且要一一對應
formatter_xxx : 對聲明的formatterjinx進行配置
代碼示例
logging.config.fileConfig(“logging.conf”)

# 輸出日志到控制台,獲取的是root對應的logger
console_logger = logging.getLogger()

# 輸出日志到單個文件
file_logger = logging.getLogger(name="fileLogger")

# rotatingFileLogger中額consoleHandler輸出到控制台,rotatingHandler輸出日志到文件
rotating_logger = logging.getLogger(name="rotatingFileLogger")
友情提示
進行以上配置后,在項目中需要進行日志輸出的地方通過logging.getLogger()方式就可以獲取到du應的logger,然后就可以使用logger.info("xxx")jinx進行日志輸出了。

使用這種方式配置日志,一定要在項目的入口函數中就調用 logging.config.fileConfig(“logging.conf”)函數,因為 logging.conf 文件中,在handler中配置的是日志文件的相對地址,如果在其他代碼文件中進行調用,由於相對地址的原因,將導致日志文件會出現在yixi意想不到的位置。
---------------------
作者:cxx654
來源:CSDN
原文:https://blog.csdn.net/cxx654/article/details/83216337
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM