diff --git a/ITShowPlatform/settings.py b/ITShowPlatform/settings.py index 79f7738..18eb2ea 100644 --- a/ITShowPlatform/settings.py +++ b/ITShowPlatform/settings.py @@ -1,35 +1,25 @@ -""" -Django settings for ITShowPlatform project. - -Generated by 'django-admin startproject' using Django 4.0.4. - -For more information on this file, see -https://docs.djangoproject.com/en/4.0/topics/settings/ - -For the full list of settings and their values, see -https://docs.djangoproject.com/en/4.0/ref/settings/ -""" from pathlib import Path import os import configparser +import logging # Build paths inside the project like this: BASE_DIR / 'subdir'. BASE_DIR = Path(__file__).resolve().parent.parent conf = configparser.RawConfigParser() -conf.read(str(BASE_DIR)+r"\config.ini",encoding="utf-8") +conf.read(os.path.join(BASE_DIR, "config.ini"),encoding="utf-8") # Quick-start development settings - unsuitable for production # See https://docs.djangoproject.com/en/4.0/howto/deployment/checklist/ # SECURITY WARNING: keep the secret key used in production secret! -SECRET_KEY = 'django-insecure-0cn#v4ei2(^n+txyh4%3d5sllz6mknz#7t$!cq-d!ly*_rwvh2' +SECRET_KEY = conf.get("Django","SECRET_KEY"), # SECURITY WARNING: don't run with debug turned on in production! -DEBUG = True +DEBUG = False ALLOWED_HOSTS = ["*"] @@ -155,3 +145,63 @@ EMAIL_HOST_PASSWORD = conf.get("email","EMAIL_HOST_PASSWORD") # 密码 (注意 EMAIL_USE_SSL = conf.get("email","EMAIL_USE_SSL") # 一般都为False EMAIL_FROM = conf.get("email","EMAIL_FROM") # 邮箱来自 + +ADMINS = ( + ('ladeng','2312936963@qq.com'), +) +MANAGERS = ADMINS + +# 创建log文件的文件夹 +LOG_DIR = os.path.join(BASE_DIR, "logs") +if not os.path.exists(LOG_DIR): + os.mkdir(LOG_DIR) + +# 基本配置,可以复用的 +LOGGING = { + "version": 1, + "disable_existing_loggers": False, # 禁用已经存在的logger实例 + "filters": {"require_debug_false": {"()": "django.utils.log.RequireDebugFalse"}}, + "formatters": { # 定义了两种日志格式 + "verbose": { # 详细 + "format": "%(levelname)s %(asctime)s %(module)s " + "%(process)d %(thread)d %(message)s" + }, + 'simple': { # 简单 + 'format': '[%(levelname)s][%(asctime)s][%(filename)s:%(lineno)d]%(message)s' + }, + }, + "handlers": { # 定义了三种日志处理方式 + "mail_admins": { # 只有debug=False且Error级别以上发邮件给admin + "level": "ERROR", + "filters": ["require_debug_false"], + "class": "django.utils.log.AdminEmailHandler", + }, + 'file': { # 对INFO级别以上信息以日志文件形式保存 + 'level': "INFO", + 'class': 'logging.handlers.RotatingFileHandler', # 滚动生成日志,切割 + 'filename': os.path.join(LOG_DIR,'django.log'), # 日志文件名 + 'maxBytes': 1024 * 1024 * 10, # 单个日志文件最大为10M + 'backupCount': 5, # 日志备份文件最大数量 + 'formatter': 'simple', # 简单格式 + 'encoding': 'utf-8', # 放置中文乱码 + }, + "console": { # 打印到终端console + "level": "DEBUG", + "class": "logging.StreamHandler", + "formatter": "verbose", + }, + }, + "root": {"level": "INFO", "handlers": ["console"]}, + "loggers": { + "django.request": { # Django的request发生error会自动记录 + "handlers": ["mail_admins"], + "level": "ERROR", + "propagate": True, # 向不向更高级别的logger传递 + }, + "django.security.DisallowedHost": { # 对于不在 ALLOWED_HOSTS 中的请求不发送报错邮件 + "level": "ERROR", + "handlers": ["console", "mail_admins"], + "propagate": True, + }, + }, +} diff --git a/logs/django.log b/logs/django.log new file mode 100644 index 0000000..e69de29