python日志配置文件_详解python日志输出使用配置文件格式

详解python日志输出使用配置文件格式,日志,脚本,配置文件,控制台,文件

详解python日志输出使用配置文件格式

易采站长站,站长之家为您整理了详解python日志输出使用配置文件格式的相关内容。

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 脚本的话我只需要按照上面的格式去配置即可。不需要在脚本里面去配置。

到此这篇关于详解python日志输出使用配置文件格式的文章就介绍到这了,更多相关python日志输出 内容请搜索易采站长站以前的文章或继续浏览下面的相关文章希望大家以后多多支持易采站长站!以上就是关于对详解python日志输出使用配置文件格式的详细介绍。欢迎大家对详解python日志输出使用配置文件格式内容提出宝贵意见

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值