在我们的实际开发过程中,我们有时候需要记录一些重要操作,或者程序运行情况,我们就需要在程序里面写入日志,来达到更快的排错跟记录重要操作的目的。以前也讲过python中logging模块进行相应的日志配置,在这里简单讲一下Django项目中如何配置与使用日志logging模块。
1.日志配置
在Django项目的settings.py文件中加入loggings配置
LOGGING = {
'version': 1,
'disable_existing_loggers': False, # 是否禁用logger
# formatters(日志格式,可以自己根据需求配置),提供给handler格式化日志输出使用(默认打印传入的消息体)
'formatters': {
# ================format参数中可能用到的格式化字符串=================
# %(name)s Logger的名字
# %(levelno)s 数字形式的日志级别
# %(levelname)s 文本形式的日志级别
# %(pathname)s 调用日志输出函数的模块的完整路径名,可能没有
# %(filename)s 调用日志输出函数的模块的文件名
# %(module)s 调用日志输出函数的模块名
# %(funcName)s 调用日志输出函数的函数名
# %(lineno)d 调用日志输出函数的语句所在的代码行
# %(created)f 当前时间,用UNIX标准的表示时间的浮 点数表示
# %(relativeCreated)d 输出日志信息时的,自Logger创建以 来的毫秒数
# %(asctime)s 字符串形式的当前时间。默认格式是 “2003-07-08 16:49:45,896”。逗号后面的是毫秒
# %(thread)d 线程ID。可能没有
# %(threadName)s 线程名。可能没有
# %(process)d 进程ID。可能没有
# %(message)s 用户输出的消息
'simple': {
'format': '%(asctime)s %(message)s'}, # 输出时间跟消息体(简单日志格式)
'standard': {
'format': '%(asctime)s [%(threadName)s:%(thread)d] [%(name)s:%(lineno)d] [%(module)s:%(funcName)s] [%(levelname)s]- %(message)s' # 标准日志输出
},
},
# 过滤器,提供给handler使用(可以不使用),也可以自定义过滤函数(https://docs.python.org/3/library/logging.html#filter-objects)
'filters': {
# 过滤debug为True
'require_debug_true': {
'()': 'django.utils.log.RequireDebugTrue'