一、配置项⽬⽇志
# 配置项目日志
LOGGING = {
'version': 1,
'disable_existing_loggers': False, # 是否禁用已经存在的日志器
'formatters': { # 日志信息显示的格式
'verbose': {
'format': '%(levelname)s %(asctime)s %(module)s %(lineno)d %(message)s'
},
'simple': {
'format': '%(levelname)s %(module)s %(lineno)d %(message)s'
},
},
'filters': { # 对日志进行过滤
'require_debug_true': { # django在debug模式下才输出日志
'()': 'django.utils.log.RequireDebugTrue',
},
},
'handlers': { # 日志处理方法
'console': { # 向终端中输出日志
'level': 'INFO',
'filters': ['require_debug_true'],
'class': 'logging.StreamHandler',
'formatter': 'simple'
},
'file': { # 向文件中输出日志
'level': 'INFO',
'class': 'logging.handlers.RotatingFileHandler',
'filename': os.path.join(BASE_DIR,'logs/mango.log'), # 日志文件的位置
'maxBytes': 300 * 1024 * 1024,
'backupCount': 10,
'formatter': 'verbose'
},
},
'loggers': { # 日志器
'django': { # 定义了一个名为django的日志器
'handlers': ['console', 'file'], # 可以同时向终端与文件中输出日志
'propagate': True, # 是否继续传递日志信息
'level': 'INFO', # 日志器接收的最低日志级别
},
}
}
二、创建⽇志⽂件⽬录
三、Git管理⼯程⽇志
问题1:
项⽬中⽣成的⽇志⽂件,我们在进⾏版本控制时,不想将⽇志⽂件上传到远程库。 我们可以忽略*.log的⽂件。
解决⽅法
在.gitignore⽂件中添加*.log
问题2:
在⽇志⽬录中忽略⽇志⽂件,上传到远程库的话会导致⽇志⽬录是空⽂件夹,git不允许上传空⽬录。 怎么办?
解决⽅法:
在⽇志⽬录中新建.gitkeep的空⽂件即可。
四、⽇志级别
DEBUG : 打印全部的⽇志,详细的信息,通常只出现在诊断问题上
INFO : 打印info,warning,error,critical级别的⽇志,确认⼀切按预期运⾏
WARNING : 打印warning,error,critical级别的⽇志,⼀个迹象表明,⼀些意想不到的事情发⽣了,或表明⼀些问题在不久的将来(例如。磁盘空间低”),这个软件还能按预期⼯作
ERROR : 打印error,critical级别的⽇志,更严重的问题,软件没能执⾏⼀些功能
CRITICAL : 打印critical级别,⼀个严重的错误,这表明程序本身可能⽆法继续运⾏
级别排序:CRITICAL > ERROR > WARNING > INFO > DEBUG
低于当前设置⽇志级别就不出⽇志。
例如下⾯设置django⽇志记录器级别为INFO。低于它的DEBUG级别⽇志就不输出。