Django 日志

例:setting配置

import logging
import os

# LOG_DIR = "/var/log/dt_logs"
LOG_DIR = "./"
# if not os.path.exists(LOG_DIR):
#     os.mkdir(LOG_DIR)

LOGGING = {
    "version": 1,
    "disable_existing_loggers": False,
    "filters": {"require_debug_false": {"()": "django.utils.log.RequireDebugFalse"}},
    "formatters": {
        "standard": {
            "format": "[%(asctime)s] %(levelname)s [%(name)s:%(lineno)s] %(message)s",
            "datefmt": "%Y-%m-%d %H:%M:%S",
        }
    },
    # 指定输出到控制台还是文件中,以及输出的方式。被logger引用。
    "handlers": {
        # 输出到控制台
        "console": {
            "level": "DEBUG",
            "class": "logging.StreamHandler",
            "formatter": "standard",
        },
        "test_log": {
            "level": "ERROR",
            "class": "logging.handlers.RotatingFileHandler",
            "formatter": "standard",
            # 存放的日志的位置
            "filename": os.path.join(LOG_DIR, "test.log"),
            "maxBytes": 1024 * 1024 * 100,
            "backupCount": 5,
        },
        "mail_admins": {
            "level": "ERROR",
            "filters": ["require_debug_false"],
            "class": "django.utils.log.AdminEmailHandler",
        },

    },
    # 指定django中的每个模块使用哪个handlers。以及日志输出的级别。
    "loggers": {
        "django": {"handlers": ["test_log"], "propagate": True, "level": "INFO"},

        "test_log": {
            # 使用哪一个 handlers
            "handlers": ["test_log"],
            "propagate": True,
            "level": "ERROR",
        },

    },
}

views

import logging
logger = logging.getLogger("test_log")
def test_log(request):
    print(logger.error("error"))
    return "hello......"

 

posted @ 2021-03-02 20:15  半日闲1  阅读(50)  评论(0编辑  收藏  举报