python - Python logging.info 在第二次运行脚本时创建空文本文件
问题描述
我完全是菜鸟和故障排除我从以前的工程师那里继承的 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.
我也尝试明确设置模式='w',但没有效果。
logging.basicConfig(level=level, format=format, handlers=handlers, mode='w')
解决方案
推荐阅读
- wordpress - 预定的帖子预览在 wordpress 多站点中的某些子站点上抛出 404
- amazon-web-services - Amazon S3 视频控制栏问题
- docker - 找不到与 scipy docker 匹配的发行版
- javascript - nodejs应用程序中的内存泄漏,关于全局变量的建议
- reactjs - 用计时器反应 useEffect 和 useState 表现得很奇怪
- laravel - Laravel Rest API 使用 Google 登录
- flask - 无法将烧瓶 tesseract 应用程序部署到 heroku
- kotlin - admob 改写广告不显示 kotlin
- spring - 图像未显示在 Spring Boot 应用程序的网页上
- ssas - 在 SSAS 表格模型中编辑 SQL 查询