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