未生成新的日志文件,而在昨天的日志文件中继续写日志

来源:9-4 持续继承中如何定时执行工程

慕数据2304192

2019-04-29

求助
已将FileHandler 切换为TimedRotatingFileHandler
29日的日志,仍在28日的日志文件中写日志
图片描述

图片描述

写回答

1回答

Mushishi

2019-05-01

其实你的思想闭环了。

1、我们不能所有都依赖于开源的框架,既然他不行,或者没按照我们说的做,那么为什么自己不再封装一下,或者增加异常处理?(拿当前日期直接创建文件就行,有就不创建,没有就创建)

2、

#coding=utf-8
import sys
import time
import logging
import logging.handlers


#定义日志输出格式
formattler = '%(levelname)s - %(name)s - %(asctime)s - %(message)s'
fmt = logging.Formatter(formattler)

#获得logger,默认获得root logger对象
#设置logger级别 debug
#root logger默认的级别是warning级别。
#不设置的话 只能发送 >= warning级别的日志
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)

#设置handleer日志处理器,日志具体怎么处理都在日志处理器里面定义
#SteamHandler 流处理器,输出到控制台,输出方式为stdout
#   StreamHandler默认输出到sys.stderr
#设置handler所处理的日志级别。
#   只能处理 >= 所设置handler级别的日志
#设置日志输出格式
stream_handler = logging.StreamHandler(sys.stdout)
stream_handler.setLevel(logging.DEBUG)
stream_handler.setFormatter(fmt)

#FileHandler 文件处理器,定义日志输出到mylog.log文件内
#   文件打开方式默认为 a
time_handler = logging.handlers.TimedRotatingFileHandler('mylog.log',when='M',interval=1)
time_handler.setLevel(logging.DEBUG)
time_handler.setFormatter(fmt)

#对logger增加handler日志处理器
logger.addHandler(stream_handler)
logger.addHandler(time_handler)

for i in range(10):
    #发送debug级别日志消息
    #15秒发送一次日志消息
    logger.debug('日志测试'+str(i))
    time.sleep(15)

你看是否每分钟生成了。

0
0

Selenium3与Python3实战Web自动化测试框架

打破无项目经验、无框架经验瓶颈,实战Web自动化测试框架!

1886 学习 · 1093 问题

查看课程