我完全是菜鸟,并对我从以前的工程师那里继承来的Python程序进行故障排除。 我正在使用最新的Anaconda(Anaconda3-2019.03-Windows),并且始终从Spyder 3.3.3内运行该程序。
程序在各个位置使用logging.info函数。
日志记录显示在IPython控制台上,并且在结束时或程序处还将日志记录写入文本文件。
我第一次运行程序时,日志记录文本文件包含控制台中显示的内容的真实副本。
几分钟后,如果我第二次运行该程序,则控制台会正确显示新日志。还创建了一个新的文本文件,但是它是空的!
在第3、4等处,程序运行时行为相同:控制台显示OK,但新的文本日志文件始终为 Empty 。
如果我清除了IPython控制台(“关闭选项卡”),然后再次运行该程序,则第一个输出日志文本文件就可以了。随后的运行将继续创建空的文本日志文件。
->如何解决空白文本日志文件问题?
我不想附加到文本日志中。我希望每次程序运行时都创建一个新的文本日志文件
这是代码部分:
starting_time = datetime.datetime.now()
logfilename = ('SomeLog'
+ datetime.datetime.now().strftime("%Y-%m-%d-%H-%M") + '.txt')
level = logging.INFO
format = ' %(message)s'
handlers = [logging.FileHandler(logfilename), logging.StreamHandler()]
logging.basicConfig(level=level, format=format, handlers=handlers)
# Bunch of math processing.
logging.info('Data written succesfully to: ' + sqlite_table)
logging.info('Elapsed time to finish SQL write: '
+ str((datetime.datetime.now() - starting_time).seconds) + ' seconds')
# More math processing.
logging.info("Total elapsed time: "
+ str((datetime.datetime.now() - starting_time).seconds) + ' seconds')
logging.shutdown() # last line of python program.
我也尝试过明确设置mode ='w',但没有效果。
logging.basicConfig(level=level, format=format, handlers=handlers, mode='w')