Django 应用程序日志不旋转

问题描述 投票:0回答:1

在版本 3.2.14 的 Django 应用程序中,在 ec2 实例上运行,该实例还具有包含 9 个工作线程的 gunicorn Web 服务器,加上 ngnix 并使用如下所示的日志配置,文件不会轮换.

gunicorn服务的用户是ubuntu,属于组:www-data

可能是什么? Gunicorn 和工人有问题吗?

非常感谢您的回答。

LOGGING = {
    "version": 1,
    "disable_existing_loggers": False,
    "formatters": {
        "simple": {"format": "%(levelname)s %(message)s"},
        "verbose": {
            "format": "[%(levelname)8s] [%(asctime)s] [%(funcName)30s] %(message)s"
        },
        "elegant": {
            "format": (
                "%(asctime)s [%(levelname)-8s] " "(%(module)s.%(funcName)s) %(message)s"
            ),
            "datefmt": "%Y-%m-%d %H:%M:%S",
        },
    },
    "handlers": {
        "console": {
            "level": "INFO",
            "class": "logging.StreamHandler",
            "formatter": "elegant",
        },
        "app": {
            "level": "INFO",
            "class": "logging.handlers.TimedRotatingFileHandler",
            "formatter": "elegant",
            "filename": os.path.join("logs", "app"),
            "when": "D",
            "interval": 30,
            "encoding": "utf-8",
        },
        "groups": {
            "level": "INFO",
            "class": "logging.handlers.TimedRotatingFileHandler",
            "formatter": "elegant",
            "filename": os.path.join("logs", "groups"),
            "when": "D",
            "interval": 30,
            "encoding": "utf-8",
        },
    },
    "root": {
        "level": "INFO",
        "handlers": ["console"],
        "formatter": "elegant",
    },
    "loggers": {
        "app": {
            "level": "INFO",
            "handlers": ["app"],
            "propagate": True,
        },
        "groups": {
            "level": "INFO",
            "handlers": ["groups"],
            "propagate": True,
        },
    },
}
python-3.x django ubuntu gunicorn python-logging
1个回答
0
投票

这是因为gunicorn 使用 2 个或更多进程进行日志记录。

如果你想轮换日志文件,创建一个单独的代码来管理日志文件会更容易。

© www.soinside.com 2019 - 2024. All rights reserved.