【问题标题】:logging not creating file for next day instead appending info in old date log file记录不为第二天创建文件,而是在旧日期日志文件中附加信息
【发布时间】:2022-01-06 10:57:20
【问题描述】:

我正在尝试使用日志记录模块来维护日志,但是一旦我启动脚本,它就会继续附加到当前日期日志文件中,而不是为第二天创建新文件。脚本 24 小时运行。我不知道该如何处理。

我的代码:

from datetime import date, datetime
import time
import logging

LogDirectory="D:\\Python_Collateral_Validation_Service\\Logs"

while True:
    logfile=LogDirectory+"\\"+str(date.today().strftime("%d/%m/%Y")).replace("/", "")+".log"
    print("log file name := ",logfile)
    logging.basicConfig(filename = logfile, level=logging.INFO, format='%(asctime)s %(message)s')
    logging.info("CollateralValidation-> CSV File Not Present")
    time.sleep(90) 

打印声明:

log file name :=  D:\Python_Collateral_Validation_Service\Logs\06012022.log
log file name :=  D:\Python_Collateral_Validation_Service\Logs\07012022.log
PS D:\Alok\CR06645_PythonCode_phase2>

日志文件只为 06012022 生成,但它也在为 07012022 写入。预期是 07012022.log 没有生成。

06012022.log 的输出

2022-01-06 16:11:53,480 CollateralValidation-> CSV File Not Present
2022-01-06 16:12:26,580 CollateralValidation-> CSV File Not Present
2022-01-06 16:15:00,987 CollateralValidation-> CSV File Not Present
2022-01-07 16:16:29,998 CollateralValidation-> CSV File Not Present

07012022 没有为上面最后一行生成

【问题讨论】:

  • 让你的代码更简单:strftime("%d/%m/%Y")).replace("/", "") -> strftime("%d%m%Y")?
  • @ThomasWeller 感谢您的建议!!
  • 大多数人希望他们的日志文件按日期排序,所以 %Y%m%d 可能是更好的选择。

标签: python logging


【解决方案1】:

来自basicConfig()

如果根记录器已经配置了处理程序,则此函数不执行任何操作

在同一句话中提出了一个解决方案

除非关键字参数 force 设置为 True。

【讨论】:

    【解决方案2】:

    删除while True : 并仅安排脚本在任务调度程序上定期运行。有一个选项可以做到这一点。

    为什么我喜欢这种方法:

    • 每次运行时都会评估用于记录的文件名,因此您总能获得当天正确的文件名。脚本不需要复杂的逻辑来处理日期更改。
    • 如果您正确安排任务(在计算机启动选项中运行),您将不必担心在计算机启动时运行脚本。
    • 长时间运行的脚本比运行、完成其工作并定期停止的脚本更容易崩溃/动作笨拙

    这不是一个纯 python 解决方案,但它会可靠地工作。

    最后,忠告:使用“%Y%m%d”作为您的日志文件名格式。在浏览日志文件时,这将允许更好的文件排序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-12
      • 2019-10-28
      • 1970-01-01
      • 1970-01-01
      • 2017-05-04
      • 2020-05-14
      相关资源
      最近更新 更多