python logging learning01日志重复记录,日志记录混乱副本.docx

上传人:牧羊曲112 文档编号:3164797 上传时间:2023-03-11 格式:DOCX 页数:3 大小:36.98KB
返回 下载 相关 举报
python logging learning01日志重复记录,日志记录混乱副本.docx_第1页
第1页 / 共3页
python logging learning01日志重复记录,日志记录混乱副本.docx_第2页
第2页 / 共3页
python logging learning01日志重复记录,日志记录混乱副本.docx_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《python logging learning01日志重复记录,日志记录混乱副本.docx》由会员分享,可在线阅读,更多相关《python logging learning01日志重复记录,日志记录混乱副本.docx(3页珍藏版)》请在三一办公上搜索。

1、python logging learning01日志重复记录,日志记录混乱 副本1. 编写python脚本实现不间断ping, 并且实现日志记录 import osimport timeimport threadingimport multiprocessingimport logging#switch=target=CCCPrinter01:192.168.0.12,CertificatePrinter01:192.168.0.13,formatter = logging.Formatter(%(name)s %(asctime)s %(levelname)s %(message)smut

2、ex=threading.Lockdef logmaker(info,logfile,logger): logger=logging.getLogger(logger) handler=logging.FileHandler(logfile) handler.setFormatter(formatter) logger.addHandler(handler) logger.error(ping %s failed%info) logger.removeHandler(handler) def logmaker_mutex(info,logfile): if mutex.acquire: log

3、ger=logging.getLogger handler=logging.FileHandler(logfile) handler.setFormatter(formatter) logger.addHandler(handler) logger.error(ping %s failed%info) mutex.release 1.1、出现问题,记录日志的时候,日志重复记录,第一遍循环时,重复记录一次;第二次循环时候,重复记录两次,依次增加下去 问题函数如下: def logmaker(info,logfile,logger): logger=logging.getLogger(logger

4、) handler=logging.FileHandler(logfile) handler.setFormatter(formatter) logger.addHandler(handler) logger.error(ping %s failed%info) 原因: 问题函数中没有调用logger.removeHandler(handler) 改进后的代码如下: def logmaker(info,logfile,logger): logger=logging.getLogger(logger) handler=logging.FileHandler(logfile) handler.se

5、tFormatter(formatter) logger.addHandler(handler) logger.error(ping %s failed%info) logger.removeHandler(handler) 问题得以解决 1.2、代码中设计有三个log文件用来记录三个打印机的网络连接日志,如果ping不通,就记录在相应的日志里面,出现的问题:记录日志时,日志混乱,相应打印机的日志没有记录到对应的log文件中,呈现随机存放到三个文件的现象。 问题代码段: 红色加粗字体部分 def logmaker(info,logfile,logger): logger=logging.get

6、Logger handler=logging.FileHandler(logfile) handler.setFormatter(formatter) logger.addHandler(handler) logger.error(ping %s failed%info) logger.removeHandler(handler) 原因: 在调用getLogger时要提供Logger的名称(注:多次使用相同名称来调用getLogger,返回的是同一个对象的引用。getLogger如果不提供参数,默认为root 改进后的代码如下: 添加函数参数,当记录不同打印机的日志时,指定不同的logger名称 def logmaker(info,logfile,logger): logger=logging.getLogger(logger) handler=logging.FileHandler(logfile) handler.setFormatter(formatter) logger.addHandler(handler) logger.error(ping %s failed%info) logger.removeHandler(handler)

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号