天天看點

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......"