python脚本日志输出使用配置文件的形式,不需要在每个脚本里面配置日志。
需求简述:
如我要写2个脚本(a.py和b.py),a.py日志输出到/var/log/a.log,b.py日志输出到/var/log/b.log,并且日志按日期切割。如果每个脚本都去配置一遍日志的话,浪费时间也不利于后期维护。
现在我要使用配置文件的格式去统一管理python脚本的代码日志输出,后续所有python脚本日志都在这个配置文件里面配置,脚本读取。方便后续维护和增加脚本的可读性。
需求实现:
我配置文件路径及内容:
vim /data/yw/conf/logconf.conf [loggers] keys=root,alog,blog [handlers] keys=handdef,handalog,handblog [formatters] keys=formatdef ############################################### [logger_root] level=DEBUG handlers=handdef [logger_alog] level=DEBUG # 如果同时使用handalog,handdef ,那么在执行a.py脚本的时候日志即输出到控制台,也输出到日志文件 handlers=handalog,handdef qualname=alog propagate=0 [logger_blog] #b.py 的日志我不让他输出到控制台,所以不用handdef 这个hands去处理日志 level=DEBUG handlers=handblog qualname=blog propagate=0 ############################################### [handler_handdef] # 输出到控制台 class=StreamHandler level=INFO formatter=formatdef args=(sys.stderr,) [handler_handalog] # a.py 日志我按时间切割 # handlers.TimedRotatingFileHandler:使用时间格式切割日志,midnight为凌晨切割 # 如果配置按时#间切割的话可以这样:class=FileHandler,然后写个脚本定时去切割。 class=handlers.TimedRotatingFileHandler level=DEBUG formatter=formatdef args=('/var/log/a.log', 'midnight') #args=('/var/log/a.log', 'a') 不使用时间切割可以这样配置args #另一种写法:面三个参数含义: D 按天切割 1 每天只切割一个文件 5 保留5个日志文件 #args=('/data/ywlog/cron/cron_dbbackup.log', 'D', 1, 5) [handler_handblog] # b.py 日志我不进行切割 class=FileHandler level=DEBUG formatter=formatdef args=('/var/log/b.log', 'a') ############################################### [formatter_formatdef] format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s' datefmt='%a, %d %b %Y %H:%M:%S'
脚本引用配置文件:
vi a.py
#!/usr/bin/python # coding=utf-8 import logging, logging.config reload(sys) sys.setdefaultencoding('utf8') logging.config.fileConfig("/data/yw/conf/logconf.conf") logger = logging.getLogger('alog') #alog 为logconf.conf loggers 配置的关键字 # 日志输出 logger.info("aaaa 正确日志") logger.error("aaaa 错误日志")
vi b.py
#!/usr/bin/python # coding=utf-8 import logging, logging.config reload(sys) sys.setdefaultencoding('utf8') logging.config.fileConfig("/data/yw/conf/logconf.conf") logger = logging.getLogger('blog') #blog 为logconf.conf loggers 配置的关键字 # 日志输出 logger.info("bbbb 正确日志") logger.error("bbbb 错误日志")
测试结果:
执行a.py脚本的时候发现日志输出到控制台也输入到日志文件里面,但是执行b.py 时,日志只输入到日志文件了。和配置文件注释的一样。
后期如果我还要添加c.py, d.py 脚本的话我只需要按照上面的格式去配置即可。不需要在脚本里面去配置。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
暂无“详解python日志输出使用配置文件格式”评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新动态
2024年11月23日
2024年11月23日
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]