python 日志

1.日志重复打印

import logging
logger = logging.getLogger('simple_example')
logger.setLevel(logging.DEBUG)
ch = logging.StreamHandler()
ch = logging.handlers.RotatingFileHandler('date_extract.log.', maxBytes=50 * 1024 * 1024, backupCount=10,encoding="utf-8")
ch.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
ch.setFormatter(formatter)
logger.addHandler(ch)
logger.debug('debug message')
logger.info('info message')
logger.warning('warn message')
logger.error('error message')
logger.critical('critical message')

输出结果:
在这里插入图片描述
日志有重复打印的问题,这个问题在spyder中才会出现,在linux环境下和VScode中都不会出现。

解决方案:加上如下代码,并重启spyder

logger.removeHandler(ch)

完整代码:

import logging
logger = logging.getLogger('simple_example')
logger.setLevel(logging.DEBUG)
ch = logging.StreamHandler()
ch = logging.handlers.RotatingFileHandler('date_extract.log.', maxBytes=50 * 1024 * 1024, backupCount=10,encoding="utf-8")
ch.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
ch.setFormatter(formatter)
logger.addHandler(ch)
logger.debug('debug message')
logger.info('info message')
logger.warning('warn message')
logger.error('error message')
logger.critical('critical message')
logger.removeHandler(ch)

输出结果:
在这里插入图片描述
2.多文件共用一个日志
文件1:logging_main.py

import logging
import logging.handlers
logger = logging.getLogger('simple_example')
logger.setLevel(logging.DEBUG)
ch = logging.StreamHandler()
ch = logging.handlers.RotatingFileHandler('date_extract.log.', maxBytes=50 * 1024 * 1024, backupCount=10,encoding="utf-8")
ch.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
ch.setFormatter(formatter)
logger.addHandler(ch)

文件2:logging_sub1.py

from logging_main import logger
logger.info("************logging_sub1****************")
logger.error("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@")

文件3:logging_sub2.py

from logging_main import logger
logger.info("************logging_sub2****************")
logger.error("######################################")

输出结果:

2019-06-26 10:43:42,299 - simple_example - INFO - ************logging_sub1****************
2019-06-26 10:43:42,299 - simple_example - ERROR - @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
2019-06-26 10:43:57,063 - simple_example - INFO - ************logging_sub2****************
2019-06-26 10:43:57,063 - simple_example - ERROR - ######################################

前两行为运行logging_sub1.py的结果,后两行为运行logging_sub2.py,这样就可以实现多文件共用一个日志啦。
实践中可以将logging_main.py中的内容放在配置文件中。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值