django的日志管理-logging
django的日志使用python的logging模块
logging的四个模块
---logger-记录器:
日志系统的入口,每个logger都是bucket,可以向这个bucket写入需要处理的信息,logger根据消息的日志级别来进行处理,接收来自大于logging定义的级别的消息,交给handle处理
日志级别分为
debug--10
info---20
warning---30
error---40
critical---50
---handle-处理器:
handle决定如何处理logger中的消息,比如打印到屏幕,写入到文件中等。与logger一样,也有一个日志级别, 如果消息的日志界别小于定义的级别,则忽略。一个logger可以有多个handle,并且每个handle可以有不同的日志级别
--filter-过滤器:
一般用的很少
--formatter-格式化
表示文本的格式,通常是用来自定义格式
以下为django中日志的配置:
#settings.py import logging . . . logger = logging.getLogger(__name__) LOG_DIR = os.path.join(BASE_DIR,'log') if not os.path.exists(LOG_DIR): os.mkdir(LOG_DIR) LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'formatters': { # 'verbose': { # 'format': '%(levelname)s %(asctime)s %(pathname)s %(module)s %(lineno)s %(message)s ', # }, 'verbose': { 'format': "{'levelname':'%(levelname)s','asctime':'%(asctime)s','module':'%(module)s','name':'%(name)s', 'pathname':'%(pathname)s','message':'%(message)s'}" }, 'simple': { 'format': '{levelname} {message}', }, }, 'handlers': { 'file': { 'level': 'DEBUG', 'class': 'logging.FileHandler', #将日志保存到文件 'formatter': 'verbose', 'filename': os.path.join(LOG_DIR,'django.log'), 'encoding': 'utf-8' }, 'default': { 'level': 'DEBUG', 'class': 'logging.FileHandler', # 将日志保存到文件 'formatter': 'verbose', 'filename': os.path.join(LOG_DIR, 'default.log'), 'encoding': 'utf-8' } }, 'loggers': { 'django': { #获取所有日志 'level': 'DEBUG', 'handlers': ['file'], 'propagate': True, #向上传播 }, }, 'root': { #顶层日志 'level': 'DEBUG', 'handlers': ['default'], } }
#视图中使用 import logging logger = logging.getLogger(__name__) class XXX(APIView): def post(self): logger.info('xxx') logger.error('xxx')
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律