如何将时间戳和日期添加到使用RotatingFilehandler创建的日志文件中

时间:2017-08-10 09:22:57

标签: python-2.7

我需要获取包含当前日期和时间的输出日志文件。在我的代码中,将创建5个日志文件。每个日志文件名都应包含当前日期和时间。我不想使用" TimedRotatingFileHandler"在我的代码中。但是使用" RotatingFileHandler",我不知道如何在文件名中添加时间和日期。这是我到目前为止所尝试的:

import time
import logging
from logging.handlers import RotatingFileHandler
from datetime import datetime
from logging import FileHandler
from time import strftime
now =datetime.now()
Filename= now.strftime('app_%H_%M_%d_%m_%Y.log')


log_formatter = logging.Formatter('[%(asctime)s][%(levelname)s](%(threadName)-10s) %(message)s')

logFile = 'D:/Tasks/1212/app'+ Filename

my_handler = RotatingFileHandler(logFile, mode='a', maxBytes=5*1024, 
                             backupCount=5, encoding=None, delay=0)

my_handler.setFormatter(log_formatter)
my_handler.setLevel(logging.INFO)
app_log = logging.getLogger('root')
app_log.setLevel(logging.INFO)
app_log.addHandler(my_handler)

while True:
   app_log.info("data")
   time.sleep(1)
logging.shutdown

1 个答案:

答案 0 :(得分:0)

使用RotatingFileHandler时,日志文件的名称在开始时是固定的,而在旋转时,新日志文件始终基于开头的文件名。

请参考它的文档:

例如,如果备份计数为5,基本文件名为“app.log”,则会显示“app.log”,“app.log.1” ,“app.log.2”,...到“app.log.5”。 正在写入的文件始终是“app.log” - 当它被填满时,它会被关闭并重命名为“app.log.1”,如果是文件app.log.1“, “app.log.2”等存在,然后将它们重命名为“app.log.2”,“app.log.3”等。

相关问题