Python 2.7 有没有办法覆盖Python2.x中的日志文件
我正在使用python2.x日志模块,比如Python 2.7 有没有办法覆盖Python2.x中的日志文件,python-2.7,logging,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文件,目前它只是附加到旧日志中。 我知道下面的代码将
logging.basicConfig(format='%(asctime)s %(message)s',
datefmt='%m/%d/%Y %I:%M:%S %p',
filename='logs.log',
level=logging.INFO)
我希望我的程序在每次执行脚本时都覆盖logs.log文件,目前它只是附加到旧日志中。
我知道下面的代码将被覆盖,但是如果有一种方法可以通过loggingconfig来实现,它看起来会更好
with open("logs.log", 'w') as file:
pass
将
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
方法的文档中(在解释所有选项的大表中):
filemode
:如果指定了文件名,则指定打开文件的模式(如果未指定filemode,则默认为“a”)
两者
及
在Python 2.7中,在Windows和Linux上始终追加注意,如果使用DictConfig,“filemode”是关键字“mode”。示例:`“handlers”:{“file”:{“class”:“logging.FileHandler”,“formatter”:“form02”,“level”:“INFO”,“filename”:“logs.log”,“mode”:“w”,#覆盖文件(如果存在)},},`我在Python 3.6中也看到了同样的行为。这似乎并不正确-我在所有情况下都传递filemode='w'。
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)