使用FileHandler

时间:2016-07-16 08:57:25

标签: python logging

我有一些代码在Python 2.7中设置日志(使用日志记录模块):

import os
import logging
logger=logging.getLogger('CopasiTools')
logger.setLevel(logging.DEBUG)
log_filename=os.path.join(os.path.dirname(copasi_file),os.path.split(copasi_file)[1][:-4]+'_log.log')
handler=logging.FileHandler(log_filename,mode='w')
formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")
handler.setFormatter(formatter)
logger.addHandler(handler)
logger.debug('debugging message')

此代码有效,我正在获取输出,但是我打算使用此日志进行大量调试,因此我想在每次运行时覆盖日志文件。在docs中说要将mode关键字参数用于'FileHandler . It doesn't specify precisely *which* mode to use for overwrite file each time but I think a reasonable assumption would be mode ='w'`。然而,这不起作用。谁能告诉我为什么?

3 个答案:

答案 0 :(得分:3)

问题是在启动新的python shell之前,文件实际上没有被覆盖。

答案 1 :(得分:3)

这为我解决了问题:

handler = logging.FileHandler(log_filename, 'w+')

答案 2 :(得分:0)

我对此并不熟悉,而且我并没有真正看到谷歌中出现的任何问题。您是否尝试过使用:

    handler=logging.FileHandler(log_filename, 'w')