python log日志记录 进程结束手动关闭log

我们直接使用log

logging的原理机制是在进程全部结束后才会随之结束

那么对于不同文件内容写入不同的log的时候

就会出现 前面的log内容越来越多 的问题

这个时候查阅了blog发现没有人解决这个问题去看官方文档

logging.shutdown()
Informs the logging system to perform an orderly shutdown by flushing and closing all handlers. This should be called at application exit and no further use of the logging system should be made after this call.
for foo in range(0, 10):
    file_name = "./out/k" + str(foo) + ".log"
    logger = logging.getLogger()  # 实例化一个logger对象
    logger.setLevel(logging.DEBUG)  # 设置初始显示级别

    # 创建一个文件句柄
    file_handle = logging.FileHandler(file_name, encoding="UTF-8", mode='w')

    # 创建一个流句柄
    # stream_handle = logging.StreamHandler()

    # 创建一个输出格式
    fmt = logging.Formatter(f"{'-' * 40}\n"
                            "> %(asctime)s - %(levelname)s - %(filename)s - "
                            "[line:%(lineno)d] -"
                            "  %(message)s\n",
                            datefmt="%a, %d %b %Y"
                                    "%H:%M:%S"
                            )

    file_handle.setFormatter(fmt)  # 文件句柄设置格式
    # stream_handle.setFormatter(fmt)  # 流句柄设置格式

    logger.addHandler(file_handle)  # logger对象绑定文件句柄

    # 打印
    logging.info(" process " + str(foo))

    logging.shutdown()

 

logging.shutdown()

通过刷新和关闭所有处理程序来通知日志记录系统执行有序的关闭。这应该在应用程序出口处调用,并且在此调用之后不应进一步使用日志记录系统。

 

这样就解决了log无法关闭不停续写的问题

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值