我正在使用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
答案 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中始终追加