Python 2.7 有没有办法覆盖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文件,目前它只是附加到旧日志中。 我知道下面的代码将

我正在使用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文件,目前它只是附加到旧日志中。 我知道下面的代码将被覆盖,但是如果有一种方法可以通过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)