python的logging模塊,Python2.7 logging.config logging.handlers

 2023-10-06 阅读 27 评论 0

摘要:為什么80%的碼農都做不了架構師?>>> ?? ? ? ? ?之前了解過python的logging模塊,最近整理筆記時發現還有一篇logging的配置遺漏在角落里沒整理出來,在此把logging的配置整理出來,在使用python自帶的logging模塊落日志時是可以在代碼內進

為什么80%的碼農都做不了架構師?>>> ??hot3.png

? ? ? ?之前了解過python的logging模塊,最近整理筆記時發現還有一篇logging的配置遺漏在角落里沒整理出來,在此把logging的配置整理出來,在使用python自帶的logging模塊落日志時是可以在代碼內進行配置的,但是你見過哪些程序員會這樣操作,一般都是把程序和配置文件進行分離的,這樣配置文件有變動時,并不需要生成新的代碼版本。python也有自帶的logging.config模塊,讓程序通過解析log配置文件來獲取日志的配置。

下面我們看看一個使用logging.config進行配置的例子:

#設置loggers,必須有root,其次設置你的自定義loggers,自定義了三個logger
[loggers]
keys=root,log1,log2,log3#設置你自定義的handlers,自定義了三個handler
[handlers]
keys=hand1,hand2,hand3#設置你自定義的日志格式,自定義了三個formatter
[formatters]
keys=form1,form2,form3#配置每個logger的信息,logger的配置以[logger_xxx]進行配置,首先配置root
[logger_root]
level=NOTSET
handlers=hand1#配置logger中log1的信息
[logger_log1]
level=INFO
handlers=hand1
propagate=0
qualname=log1#配置logger中log2的信息
[logger_log2]
level=DEBUG
handlers=hand2
propagate=0
qualname=log2#配置logger中log3的信息
[logger_log3]
level=ERROR
handlers=hand3
propagate=0
qualname=log3#設置handler的信息,以[handler_xxx]開始進行設置,先設置hand1的信息
[handler_hand1]
class=FileHandler
level=INFO
formatter=form1
args=('../logs/log1.log','a')#設置hand2的信息
[handler_hand2]
class=handlers.RotatingFileHandler
level=DEBUG
formatter=form1
args=('../logs/log2.log','a','2000',9)#設置hand3的信息
[handler_hand3]
class=handlers.TimedRotatingFileHandler
level=ERROR
formatter=form1
args=('../logs/log3.log','D',0,9)#設置日志的格式,以[formatter_xxx]開始進行設置,先設置form1的格式
[formatter_form1]
format=%(asctime)s %(filename)s[line:%(lineno)d] %(process)d  %(levelname)s %(message)s
datefmt=%a,%d %b %Y %H:%M:%S#設置form2的格式
[formatter_form2]
format=%(asctime)s %(filename)s[line:%(lineno)d] %(process)d %(levelname)s %(message)s
datefmt=%a,%d %b %Y %H:%M:%S#設置form3的格式
[formatter_form3]
format=%(asctime)s %(filename)s[line:%(lineno)d] %(process)d %(levelname)s %(message)s
datefmt=%a,%d %b %Y %H:%M:%S

? ? ? ?以上配置文件中的參數大多數都可以在logging模塊的doc文檔中看到詳細的解釋,比如level、format、datefmt等等,但是handler的class設置的詳細卻在另外一個logging.handlers模塊中,logging.handlers模塊詳細的解釋了log可以以哪些方式落下來,以及日志文件相關的一些參數。

python的logging模塊、 在設置完上面的log配置文件后,就可以在python代碼中加載這個配置文件了:

import logging
import logging.configlogging.config.fileConfig("/opt/conf/logging.config")
logger1=logging.getLogger("log1")
logger2=logging.getLogger("log2")
logger3=logging.getLogger("log3")#text
logger1.info("add email_contents")
? ? 這樣就可以把你設置的信息寫入相關日志文件中了。本篇沒有詳細的解釋日志文件的設置規范,因為這些信息都是和前面logging模塊相關的,logging.config只是把硬編碼在代碼中的日志配置抽取出來而已。



轉載于:https://my.oschina.net/guol/blog/364273

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/5/118709.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息