有没有办法覆盖python 2.x中的日志文件

时间:2016-02-16 21:58:06

标签: python-2.7 logging

我正在使用python2.x日志记录模块,比如,

logging.basicConfig(format='%(asctime)s %(message)s',
                datefmt='%m/%d/%Y %I:%M:%S %p',
                filename='logs.log',
                level=logging.INFO)

我希望我的程序为每次执行脚本覆盖logs.log文件,目前它只是附加到旧日志。 我知道下面的代码会覆盖,但是如果有办法通过记录配置来实现它,它看起来会更好。

with open("logs.log", 'w') as file:
  pass

2 个答案:

答案 0 :(得分:16)

filemode选项添加到basicConfig

logging.basicConfig(format='%(asctime)s %(message)s',
                datefmt='%m/%d/%Y %I:%M:%S %p',
                filename='logs.log',
                filemode='w',
                level=logging.INFO)

basicConfig方法的logging文档(在解释所有选项的大表中):

  

filemode:指定打开文件的模式,如果指定了filename(如果未指定filemode,则默认为'a')。

答案 1 :(得分:1)

两者

logging.basicConfig(format='%(asctime)s %(message)s',
                datefmt='%m/%d/%Y %I:%M:%S %p',
                filename='logs.log',
                filemode='w',
                level=logging.INFO)

logging.basicConfig(format='%(asctime)s %(message)s',
                datefmt='%m/%d/%Y %I:%M:%S %p',
                filename='logs.log',
                filemode='w+',
                level=logging.INFO)
在Windows和Linux上,在Python 2.7中

始终追加