当日志文件夹超过maxsiz时,如何在其中创建多个日志文件

2024-04-19 08:17:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个在日志文件中提供日志信息的程序,但是现在我已经创建了一个名为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中用不同的名称创建新的日志文件,当它超过maxbytes大小时…请帮助我如何做。你知道吗

提前谢谢。。你知道吗


Tags: 文件namedebug文件夹名称jsonlogginghandlers
1条回答
网友
1楼 · 发布于 2024-04-19 08:17:19

看看RotatingFileHandler

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

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

您可以使用maxBytesbackupCount值来允许文件以预定的大小滚动。当大小即将超过时,文件将被关闭,新文件将以静默方式打开以供输出。每当当前日志文件的长度接近maxBytes时,就会发生滚动;但是如果maxBytesbackupCount中的任何一个为零,则不会发生滚动,因此通常需要将backupCount设置为至少1,并且具有非零的maxBytes。当backupCount非零时,系统将通过在文件名后附加扩展名“.1”、“.2”等来保存旧日志文件。例如,backupCount为5,基本文件名为应用程序日志,你会得到应用程序日志, 应用程序日志.1, 应用程序日志.2,最多应用程序日志.5. 写入的文件总是应用程序日志. 填充此文件后,它将关闭并重命名为应用程序日志.1,如果文件应用程序日志.1, 应用程序日志.2等存在,则将它们重命名为应用程序日志.2, 应用程序日志3等。你知道吗

还有TimeRotatingFileHandler,它允许基于时间旋转日志文件。你知道吗

相关问题 更多 >