fla*_*urn 5 logging python-3.x
我需要重命名日志文件,但之后继续记录.我正在运行Python 3.x并使用logging模块来创建日志.
logger = logging.getLogger(r'mylogger')
handler = logging.FileHandler(r'mylog.txt', mode = r'w')
logger.addHandler(handler)
logger.info(r'msg 1')
logger.info(r'msg 2')
handler.renameFile(r'my_newlog.txt') # <--- Is something like this possible?
logger.info(r'msg 3')
Run Code Online (Sandbox Code Playgroud)
有谁知道这样的事情是否可能?如果不是,我该怎么做呢?我的一个想法是关闭文件(handler.close()),从记录器中删除处理程序,重命名旧文件,使用新文件名创建一个新的处理程序并将其添加到记录器.然而问题是我需要创建一个完全相同的处理程序,即它需要具有与旧的相同的属性(当然文件名除外).是否有一种简单的方法来存储旧属性,然后使用它们来设置新处理程序的属性?
任何帮助表示赞赏.
Nic*_*ick -1
import glob
import logging
import logging.handlers
LOG_FILENAME = 'logging_rotatingfile_example.out'
# Set up a specific logger with our desired output level
my_logger = logging.getLogger('MyLogger')
my_logger.setLevel(logging.DEBUG)
# Add the log message handler to the logger
handler = logging.handlers.RotatingFileHandler(
LOG_FILENAME, maxBytes=20, backupCount=5)
my_logger.addHandler(handler)
# Log some messages
for i in range(20):
my_logger.debug('i = %d' % i)
# See what files are created
logfiles = glob.glob('%s*' % LOG_FILENAME)
for filename in logfiles:
print(filename)
Run Code Online (Sandbox Code Playgroud)
结果应该是 6 个独立的文件,每个文件都包含应用程序的部分日志历史记录:
logging_rotatingfile_example.out
logging_rotatingfile_example.out.1
logging_rotatingfile_example.out.2
logging_rotatingfile_example.out.3
logging_rotatingfile_example.out.4
logging_rotatingfile_example.out.5
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1463 次 |
| 最近记录: |