gpt4 book ai didi

python - 当日志文件夹超过最大大小时如何在日志文件夹中创建多个日志文件

转载 作者:行者123 更新时间:2023-12-01 08:36:57 25 4
gpt4 key购买 nike

我有一个程序可以在日志文件中提供日志记录信息,但现在我创建了一个名为 LogFolder 的文件夹,我将日志文件保存在同一个文件夹中,但我想每次都创建一个新文件,当它增加 maxBytes 大小时使用不同的名称

我的日志文件是以 json 格式编写的,如果您知道相同查询的正常格式,那么您可以帮助我。

我的 logging.json 文件是:

{
"version": 1,
"disable_existing_loggers": false,
"formatters": {
"json": {
"format": "%(asctime)s - %(name)s - %(levelname)s - %(message)s",
"()": "pythonjsonlogger.jsonlogger.JsonFormatter"
}
},
"handlers": {
"console": {
"class": "logging.StreamHandler",
"level": "DEBUG",
"formatter": "json",
"stream": "ext://sys.stdout"
},
"file_handler": {
"class": "logging.handlers.RotatingFileHandler",
"level": "DEBUG",
"formatter": "json",
"filename": "..\\LogFloder\\Data.log",
"mode": "a",
"maxBytes": 25600,
"encoding": "utf8"
}
},
"root": {
"level": "DEBUG",
"handlers": ["console", "file_handler"]
}
}

这就是我在 python 文件 main.py 中的调用方式:

import logging.config
import json
fp = open('logging.json')
logging.config.dictConfig(json.load(fp))
logging.getLogger("requests").setLevel(logging.WARNING)
logger = logging.getLogger(__name__)
logger.removeHandler(default_handler)
fp.close()

这里所有的事情都工作得很好。我只想在 LogFolder 超过最大字节大小时在 LogFolder 中创建具有不同名称的新日志文件...请帮助我如何做到这一点。

提前致谢..

最佳答案

看看RotatingFileHandler

编辑以根据评论的建议扩展答案

RotatingFileHandler 类支持磁盘日志文件的轮换。在实例化时,您可以提供两个可选参数 - 默认值为 0 的 maxBytes 和默认值为 0的 backupCount

您可以使用 maxBytesbackupCount 值来允许文件以预定大小滚动。当即将超过大小时,文件将被关闭,并以静默方式打开一个新文件以进行输出。每当当前日志文件的长度接近 maxBytes 时,就会发生翻转;但如果 maxBytesbackupCount 为零,则永远不会发生翻转,因此您通常希望将 backupCount 设置为至少 1,并且具有非零 maxBytes 。当backupCount非零时,系统将通过在文件名后附加扩展名“.1”、“.2”等来保存旧日志文件。例如,如果 backupCount 为 5,基本文件名为 app.log,您将获得 app.log、app.log.1、app.log.2,直到 app.log。 5.写入的文件始终是 app.log。当这个文件填满后,它被关闭并重命名为app.log.1,如果文件app.log.1、app.log.2等存在,那么它们将被重命名为app.log.2、app.log.1、app.log.1、app.log.1、app.log.1、app.log.1、app.log.1、app.log.1、app.log.1、app.log.1、app.log.1、app.log.1、app.log.1、app.log.1、app.log.1、app.log.1、app.log.1、app.log.2分别为log.3等。

还有 TimeRotatingFileHandler,允许根据时间轮换日志文件。

关于python - 当日志文件夹超过最大大小时如何在日志文件夹中创建多个日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53668343/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com