Django用的是Python buildin的logging模块。

Python logging由四部分组成:

  1. Loggers - 记录器
  2. Handles - 处理器
  3. Filters - 过滤器
  4. Formatters - 格式器

Loggers

Logger,记录器。一个记录器是日志系统的一个实体,每一个记录器是一个已经命名好的信息“桶”,在程序执行的过程中,可以往里面写入信息。

每个记录器都要设置log level, 这个log level描述了记录器记录信息的严重级别。log level有如下几种:

1、DEBUG: 低级别的系统信息,一般用于调试

2、INFO: 一般的系统信息

3、WARNING: 警告信息,

4、ERROR: 错误信息,

5、CRITICAL: 严重性信息

每一条被写入到记录器中的信息都称为一条日志记录。每条日志记录也都有log level来说明该日志记录的严重级别。每条日志记录也包含一些有用的元素,这些元素用来描述这个日志记录描述的一个什么样的事件。

当一条日志信息发给记录器时,日志信息的log level会和记录器的log level对比。如果日志信息的log level达到或者是超过记录器的log level的级别,这条信息会被发往处理器去处理。否则,这条信息会被忽略。

一旦记录器决定信息要进一步被处理,这条信息会被pass给Handler.

Handlers

handlers,处理器。就像一个引擎,决定每一条写进记录器中的信息应该怎么处理。它说明的是一个特殊的记录行为,比如,将这个信息写在屏幕上、写到一个文件或者写到一个Network socket中去。

像记录器一样,handlers 也有log level控制。如果信息的log level没有达到或者超过handler的log level,那么handler会忽略点这条消息。

一个logger可以有多个handlers, 且每个handler可以有不同的log level. 这样,可以根据信息的严重级别提供不同的通知。比如,你可以设置另一个严重级别为ERROE和CRITICAL的handler, 为一个paging service。同时,设置一个handler去记录下所有严重级别的信息,以提供给进一步分析。

Filters

Filters,过滤器。提供一些额外的过滤功能,作用于信息从记录器传给handler的过程中。

默认情况下,任何达到log level的日志信息都会被处理。但是,如果配置了filter,你可以在logging过程中添加一些额外的过滤功能。比如,你只允许某个指定的来源的ERROR信息发给handler.

Filters也可以修改日志记录的级别。比如,你可以写一个Filter, 设置在一些特殊情况,能够将ERROR级别的日志记录降级为WARNING级别。

Filters可以在Loggers和handlers里面设置。多个filters可以同时作用于一个地方,起到多重过滤的作用。

Formatters

Formatters,格式化器。一条日志记录需要以文本的形式展现出来,Formatters定义了文本的格式。一个格式化器一般由python的格式字符串组成。不过,你也可以自定义格式。

Django logging的介绍的更多相关文章

  1. python 全栈开发,Day96(Django REST framework 视图,django logging配置,django-debug-toolbar使用指南)

    昨日内容回顾 1. Serializer(序列化) 1. ORM对应的query_set和ORM对象转换成JSON格式的数据 1. 在序列化类中定义自定义的字段:SerializerMethodFie ...

  2. python3-开发进阶Django-debug-toolbar的配置和Django logging的配置

    阅读目录 django-debug-toolbar的配置 Django logging的配置 一.django-debug-toolbar的配置 1.介绍 django-debug-toolbar 是 ...

  3. 6月20日 Django中ORM介绍和字段、字段参数、相关操作

    一.Django中ORM介绍和字段及字段参数 二.Django ORM 常用字段和参数 三.Django ORM执行原生SQL.在Python脚本中调用Django环境.Django终端打印SQL语句 ...

  4. Django - Django框架 简单介绍

    Django框架 简单介绍 本文地址: http://blog.csdn.net/caroline_wendy/article/details/29172271 1. 介绍 Django是一个开放源码 ...

  5. Django项目结构介绍

    官网下载网址:https://www.djangoproject.com/download/ 安装(安装最新LTS版): pip3 install django==2.0.7 创建一个django项目 ...

  6. ModelViewSet 路由 / django logging配置 / django-debug-toolbar使用

    一.ModelViewSet 路由 因为我们正在使用ViewSet代替View,实际上已经不再需要自己来设计URL的配置了.将资源和视图.URL绑定到一起是一个可以自动完成的过程,只需要使用Route ...

  7. Django中ORM介绍和字段及字段参数 Object Relational Mapping(ORM)

    Django中ORM介绍和字段及字段参数   Object Relational Mapping(ORM) ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简 ...

  8. python 日志打印之logging使用介绍

    python 日志打印之logging使用介绍 by:授客QQ:1033553122 测试环境: Python版本:Python 2.7   简单的将日志打印到屏幕 import logging lo ...

  9. Django logging模块

    一.Django logging配置 1.在setting.py中配置 # 日志文件存放路径 BASE_LOG_DIR = os.path.join(BASE_DIR, "log" ...

随机推荐

  1. liunx下查看日志最实用命令和方法

      1.业务系统访问量不是很大的时候,使用这个,有bug的地方操作下,直接看最后操作的日志,就是你刚才操作的地方,好好查bug吧 tail  -fn100  catalina.log   查询日志尾部 ...

  2. 在centos linux上安装docker

    前置条件 64-bit 系统 kernel 3.10+ 1.检查内核版本,返回的值大于3.10即可. $ uname -r 2.确保yum是最新的 $ yum update 3.安装 Docker y ...

  3. 从 JDK 源码角度看 Object

    Java的Object是所有其他类的父类,从继承的层次来看它就是最顶层根,所以它也是唯一一个没有父类的类.它包含了对象常用的一些方法,比如getClass.hashCode.equals.clone. ...

  4. 在WPF中自定义控件

    一, 不一定需要自定义控件在使用WPF以前,动辄使用自定义控件几乎成了惯性思维,比如需要一个带图片的按钮,但在WPF中此类任务却不需要如此大费周章,因为控件可以嵌套使用以及可以为控件外观打造一套新的样 ...

  5. 移动端Push推送

    移动端Push推送 移动端开发逃不掉要做推送,这里给出服务端一种省时省力的解决方案. iOS:PushSharp.Apple.苹果有自己的推送服务,我们按照规则推送数据就好.这里我选取PushShar ...

  6. javaweb之jsp标签

    1.JSP标签简介 JSP标签也称之为Jsp Action(JSP动作)元素,它用于在Jsp页面中提供业务逻辑功能,避免在JSP页面中直接编写java代码,造成jsp页面难以维护. 2.JSP常用标签 ...

  7. springMVC介绍及配置

    Spring MVC的Controller用于处理用户的请求.Controller相当于Struts 1里的Action,他们的实现机制.运行原理都类似. Controller是个接口,一般直接继承A ...

  8. 纯css画三角形,勾等形状

    //三角形 .money-ul li.active:after { content: ""; position: absolute; bottom: 0; right: 0; bo ...

  9. 00HTML

    一.概述 超文本标记语言(Hyper Text Markup Language),HTML是一门描述性的语言.基本语法: <标签> 内容 </标签>** 在一个网页中,HTML ...

  10. JavaScript 递归法排列组合二维数组

    <html> <head> <title>二维数组排列组合</title> </head> <body> <div id= ...