一、日志器的配置
问题:为什么需要日志器呢?
在开发的过程当中,出现的一些bug和一些报错的信息,如果没有日志器,在终端显示后并不会保存下来,如果我们想日后查看报错信息,就需要日志器将这些信息保存下来;
再一个在生产过程中,首先我们是在开发阶段,在这个阶段我们都是在终端上面进行调试,然后再部署到服务器上面,如阿里云服务器。当别人访问我们的服务器的时候,出现的一些bug和一些报错信息,也可以通过日志器来存起来,我们开发人员就可以通过这日志将问题找出。另外设计到网络安全问题,当出现异常请求,请求我们的服务器,比如黑客暴力请求,如果此时我们没有服务器,我们就无法得知这些异常请求信息,就没办法找到问题和解决问题。
问题:日志器配置在什么位置
配置在setting.py文件中
# 配置日志器
LOGGING = { # logging命名是固定的
# 版本
'version': 1, # 日志版本号
# 是否禁用已存在的日志器
'disable_existing_loggers': False, # 设为False表示不禁止其他日志器
'formatters': { # 它指定了日志的格式,通过这个设定格式来显示信息
'verbose': { # 更加复杂的日志
'format': '%(levelname)s %(asctime)s %(module)s %(lineno)d %(message)s' # asctime产生日志信息的时间
},
'simple': { # 只是简单的日志格式
'format': '%(levelname)s %(module)s %(lineno)d %(message)s' # levelname:表示是哪一种日志信息,是异常报错还是其他, module表示是哪个模块出现了错误
}, # lineno:表示是哪一行出现了错误, message指的是具体的日志信息
},
'filter': {
'require_debug_true': {
'()': 'django.utils.log.RequireDebugTrue',
},
},
'handlers': { # 一种处理器,日志是通过文件的方式来保存日志,还是终端显示日志
'console': { # 通过终端显示日志信息
'level': 'DEBUG',
'filters': ['require_debug_true'],
'class': 'logging.StreamHandler',
'formatter': 'simple'
},
'file': { # 通过文件来保存日志信息
'level': 'INFO', # 保存等级是info
'class': 'logging.handlers.RotatingFileHandler',
'filtename': os.path.join(BASE_DIR, 'logs/zgzeng.log'), # 日志文件的位置
'maxBytes': 300 * 1024 * 1024, # 日志文件保存的日志信息的最大信息量,这里设置成了300M, 如果所有的日志文件都装满了信息,那么后面产生的日志信息就会覆盖前面的日志信息
'backupCount': 10, # 设置日志文件的量,这里设置了10个
'formatter': 'verbose'
},
},
'loggers': {
'django': { # 定义一个名为django的日志器
'handlers': ['console', 'file'], # 通过console和file两种方法来记录日志
'propagate': True,
'level': 'INFO', # 日志器接收的最低日志级别
}
}
}
再创建logs文件夹,日志器的文件保存路径要和日志器中保持一致,如下图
二、语言配置
language设置成中文,默认的是英文,时间设置成东八区时间
三、静态文件的设置
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static'), # 用于存放静态文件
]
然后在根目录下面创建一个static文件夹