Django Logging

组成部分

  Loggers

  Handlers

  Filters

  Formatters

Loggers

  loggers是记录系统的入口。他具有日志级别,定义的日志级别如下

    DEBUG:用于调试目的的低级系统信息

    INFO: 一般系统信息

    WARNING: 警告信息

    ERROR:错误信息

    CRITICAL:关键错误信息

    NOTEST: 记录所有

  写入logger的每条消息都是日志记录。每个日志记录还具有一个日志级别,表示该消息的严重性。日志记录还可以包含描述正在记录会见的有用元数据。这可以包括诸如堆栈跟踪或错误代码之类的详细信息。

  如果消息日志级别达到或超过loggers本身的日志级别,则进行下一步处理,如果没有,则忽略。

  一旦记录器确定需要处理消息,他就会传递给Handler。

Handler

  Handler是负责进行处理。例如将消息写入屏幕,文件或者socket。

  Handler也具有日志级别,如果未达到Handeler的日志级别,则忽略

  loggers可以有多个Handler,可以定义不同的日志级别。

Filters

  Filters用于提供对从loggers到Handler的日志记录传递的额外控制。

  默认情况下,处理所有满足日志级别要求的任何日志消息。也可以自定义其他条件

Formatters

  格式化输出。格式化程序通常由包含LogRecord属性的Python格式化字符串组成

配置日志记录

  默认情况下Django使用dictConfig格式,配置日志记录。

  参考网址

    https://docs.python.org/3/library/logging.handlers.html

  dictConfig必填

    version 目前唯一有效的值为1

   其他都是可选的

  如果dictConfig中的disable_existing_loggersLOGGING设置为True(默认值),则将禁用默认配置中的所有记录器。已禁用的记录器与已删除的记录器不同; 记录器仍然存在,但会默默地丢弃记录到它的任何内容,甚至不会将条目传播到父记录器。因此你应该非常小心使用; 它可能不是你想要的。相反,您可以设置到和重新定义的部分或全部的默认记录器; 或者您可以设置 到和处理日志记录配置己。'disable_existing_loggers': Truedisable_existing_loggersFalseLOGGING_CONFIGNone

  示例文件

LOGGING = {'version': 1,'disable_existing_loggers': False,'handlers': {'file': {'level': 'DEBUG','class': 'logging.FileHandler','filename': '/path/to/django/debug.log',},},'loggers': {'django': {'handlers': ['file'],'level': 'DEBUG','propagate': True,},},
}

  

logging.FileHandler 发送日志输出到磁盘文件
logging.StreamHandler  发送日志输出sys.stdout的sys.stderr或任何类文件对象
logging.NullHandler  不做任何输出
propagate 向上级传递
logging.handlers.RotatingFileHandler 根据日志大小进行日志轮询

代码中打印日志
import logging
logger = logging.getLogger("django")
logger.info("hello word!")


打印日志输出到屏幕

import osLOGGING = {'version': 1,'disable_existing_loggers': False,'handlers': {'console': {'class': 'logging.StreamHandler',},},'loggers': {'django': {'handlers': ['console'],'level': os.getenv('DJANGO_LOG_LEVEL', 'INFO'),},},}

复杂的日志格式

LOGGING = {'version': 1,'disable_existing_loggers': False,'formatters': {'verbose': {'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'},'simple': {'format': '%(levelname)s %(message)s'},},'filters': {'special': {'()': 'project.logging.SpecialFilter','foo': 'bar',},'require_debug_true': {'()': 'django.utils.log.RequireDebugTrue',},},'handlers': {'console': {'level': 'INFO','filters': ['require_debug_true'],'class': 'logging.StreamHandler','formatter': 'simple'},'mail_admins': {'level': 'ERROR','class': 'django.utils.log.AdminEmailHandler','filters': ['special']}},'loggers': {'django': {'handlers': ['console'],'propagate': True,},'django.request': {'handlers': ['mail_admins'],'level': 'ERROR','propagate': False,},'myproject.custom': {'handlers': ['console', 'mail_admins'],'level': 'INFO','filters': ['special']}}
}

  

  

转载于:https://www.cnblogs.com/lfdblog/p/10033403.html

Django Logging相关推荐

  1. Django logging模板使用样例

    关键时候,这些日志还是很有用的. 还要注意,如果开发在WINDOWS上, 而正式运行在LINUX上, 还要分个叉判断一下的. 简单使用: import logging mylog = logging. ...

  2. python logging模块使用教程

    格式化配置: logging.basicConfig(level=logging.INFO, format='%(asctime)s %(levelname)s %(filename)s [%(lin ...

  3. django日志使用TimeRotateFileHandler

    如果使用django的settings.py设置日志会产生一些问题. 问题描述 报错信息如下: Traceback (most recent call last): File "C:\Pyt ...

  4. django源码阅读 manage.py文件

    Django源码阅读之manager.py文件阅读 我们知道,我们运行一个django项目的时候,需要进入项目的根目录,然后输入命令,python manage.py runserver,这样,我们就 ...

  5. python logging.getlogger,python – 避免`logger = logging.getLogger(__ name __)`

    您可以使用logging.basicConfig通过日志记录定义可用的默认界面,如下所示: import logging logging.basicConfig(level=logging.DEBUG ...

  6. django1.4日志模块配置及使用

    一.默认日志配置 在django 1.4中默认有一个简单的日志配置,如下 # A sample logging configuration. The only tangible logging # p ...

  7. 2-django进阶之日志功能(亲测)

    来源:https://segmentfault.com/a/1190000016068105 Django中的日志功能 一.日志相关概念 日志是一种可以追踪某些软件运行时所发生事件的方法.软件开发人员 ...

  8. django/python日志logging 的配置以及处理

    日志在程序开发中是少不了的,通过日志我们可以分析到错误在什么地方,有什么异常.在生产环境下有很大的用处.在java 开发中通常用 log4j,logback 等三方组件.那么在 django中是怎么处 ...

  9. python的日志模块:logging;django的日志系统;django日志输出时间修改

    Django的log,主要是复用Python标准库中的logging模块,在settings.py中进行配置 源代码 1.__init__.py包含以下类: StreamHandler Formatt ...

最新文章

  1. RocketMQ源码分析之RocketMQ事务消息实现原下篇(事务提交或回滚)
  2. VTK:图片之BorderPixelSize
  3. windows守护进程_在Linux的Windows子系统上(WSL)使用Docker(Ubuntu)
  4. leetcode python3 简单题167. Two Sum II - Input array is sorted
  5. CXF(2.7.10) - RESTful Services, JSON Support
  6. jsp 弹出窗口设置大全
  7. 游戏测试和软件测试哪个好点?
  8. Android Studio报错提示:Excepted resource of type color
  9. 【面试】AI算法工程师---面试题!(第二部分:AI部分)
  10. Python学习推荐
  11. 地震学儒略日转化成常规日期(python函数)
  12. azkaban 安装
  13. java mediator_Java 实现中介者(Mediator)模式
  14. windows获取文件列表及文件夹结构
  15. 裁员降薪经济寒冬下的企业舆情危机攻略
  16. 为什么《大长今》是湖南卫视引入的?
  17. Linux中如何对虚拟机管理和恢复
  18. ajax 微信code获取_微信网页授权——获取code、access_token、openid,及跨域问题解决...
  19. 保健中药不贵胜过市面上的保健品
  20. 古风男孩取名:有帝王气质的古风男孩名字

热门文章

  1. cmake编译android平台的libPoco
  2. oracle编程艺术笔记1
  3. POS 客显 设备 显示 总价 单价 找零 收款 C# SerialPort 法
  4. 实现不是三角形尾巴的气泡框
  5. Vue 组件间的通讯
  6. apigateway-kong(四)负载均衡理论及实现
  7. 火币网行情获取的websocket客户端
  8. RHCE-postfix
  9. virtualbox 在物理机是无线网卡的时候做桥接配置 - juandx - 博客园
  10. Asp.net读取AD域信息的方法(一)