Python logging 按日期分割不成功?
是这样的,我前几天写了一个服务,这个服务每10分钟去查询所有的CPU占比率超过百分之10的程序,然后输出的log中。
这是我的log.py配置
class Log(object):
'''日志类 '''
def __init__(self, name):
self.path = "/var/log/infinity/custom/" # 定义日志存放路径
self.filename = self.path + rq + "_custom_monitor" + ".log" # 日志文件名称
self.name = name # 为%(name)s赋值
self.logger = logging.getLogger(self.name)
# 控制日志文件中记录级别
self.logger.setLevel(logging.INFO)
# 控制输出到控制台日志格式、级别
# self.ch = logging.StreamHandler()
# 日志保留7天,一天保存一个文件
self.fh = TimedRotatingFileHandler(self.filename, when='D', interval=1, backupCount=7)
# 删除设置
self.fh.suffix = '%Y-%m-%d_%H-%M.log'
self.fh.extMatch = re.compile(r"^\d{4}-\d{2}-\d{2}_\d{2}-\d{2}.log$")
# 定义日志文件中格式
self.formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(name)s[line:%(lineno)d] - %(message)s')
self.fh.setFormatter(self.formatter)
self.logger.addHandler(self.fh)
# self.logger.addHandler(self.ch)
def info(self, msg):
self.logger.info(msg)
def warning(self, msg):
self.logger.warning(msg)
def error(self, msg):
self.logger.error(msg)
def debug(self, msg):
self.logger.debug(msg)
def close(self):
self.logger.removeHandler(self.fh)
这是我的调用代码:
log.info("\n进程占用内存\n" + check_process_memory(key))
问题就来了,非常奇怪,我昨天启动的监控程序,生成了3月22号的log日志,但是,今天我检查,发现没有生成3月23号的日志程序,还是依旧记录在3月22的日志中。
我一度怀疑自己写法有问题,但是我切换了按分钟分割日志就分割成功了,按天数就有问题,请问有谁也遇到过这样的情况么?如何处理?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你写的没看出来问题啊,我怀疑你服务器的时间是不是没到23号,在终端执行date,我猜你服务器时间可能是utc时间?
参考这个https://www.cnblogs.com/qhlbl...
'D' 是+1天,改成when='MIDNIGHT'是你想要的效果
楼主你好,我用的你的脚本在我本地运行,我是设置的分钟,我这边是分钟切换的时候创建文件失败,楼主能指教下吗