转:http://www.tuicool.com/articles/IV3meeE

logging

django使用python的内置模块logging来管理自己的日志,logging中四个重要的概念分别是

1、Loggers

2、Handlers

3、Filters

4、Formatters

Loggers(日志记录器),系统中的每一条日志都是由该组件进行记录的,每一个记录器都应该有其自己的名称并标记其最低记录的等级,在python中,定义了如下几个日志等级

DEBUG:所有等级中最低,其信息一般用来作为调试的辅助信息

INFO:程序的一般信息

WARNING:警告,通常用来对某些可能出现的错误且不会影响程序正常运行的信息进行警告

ERROR:错误,表示出现了某种错误

CRITICAL:奔溃,出现了严重级别的错误

日志文件中的每一条信息都是一条信息记录,都应该有其对应的级别,然后记录一些打印该条日志时的一些元数据,来告诉查阅者出现这条日志时程序的大致情况,例如调用栈或者状态码等等

当一条日志给到logger时,logger会对该条信息的级别与自身的级别进行比较,如果该日志级别不低于本身级别,logger就会进行下一步操作。相反,如果日志的信息级别比logger的低,那么他就会忽略这条日志,不会进行任何操作

当logger经过级别的比较之后u决定要对某条日志进行处理时,就会将该条日志交给Handlers

Handerls

Handlers(处理器):他来处理具体每条信息,例如是将日志打印到屏幕还是记录到文件或者发送至某个网络连接

和记录器logger一样,Handlers也有自己的记录级别,如果日志级别低于handler的级别,handler同样会忽略该条日志

更简便的是,一个logger可以拥有多个hander,而且不同的handler可以拥有不同的记录级别。这样,我们就可以根据不同的日志级别对同一个logger做不同的事情,例如我们可以将级别为WARNING和ERROR的日志打印到屏幕,而级别为CRITICAL级别的日子直接发送到管理者邮箱

Filters(过滤器):提供了传递给handler之前的附加功能,在通常情况下,一条日志信息只要达到logger的级别之后就会传递给handler处理,但是我们可以通过使用filter来对

日志进行额外的过滤。例如我们可以使用某个filter来控制只允许某个特定的源的ERROR级别的日志

Filter还运行在处理之前修改日志,例如降低或者提高日志的级别

filter可以在logger和handler中同时使用,而且多个filter会同时工作

Formatters

Formatters(格式化):定义了怎么显示内容,因为最终的日志都会以文本的形式展现,firmatter就是描述怎么来做这件事。formatter通常都是使用python格式化字符串的方法来对日志进行格式化。

每一个logger实例拥有与之对应级别的方法,调用这些方法就可以传递对应级别的日志信息

logger.debug()

logger.info()

logger.warning()

logger.error()

之所以整理这个,是因为调试在编程过程中占了很大的一部分,平时的时候u,可以使用pdb进行调试,但是在使用线程一类的时候,没办法使用pdb进行调试,这时候就可以使用logger,将需要知道的信息打印到日志里面进行观察

转:http://blog.csdn.net/shanliangliuxing/article/details/7716742这个博客里面显示了具体怎么使用logger

logger = logging.getLogger("django") # 为loggers中定义的名称----------------http://blog.csdn.net/novostary/article/details/52424116这篇博客里面记载了括号里面django的含义,
可以看到下面的标注区

其实就是使用了哪一个日志记录器。

 

在django中使用logging的更多相关文章

  1. 在Django中使用logging模块

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

  2. Django中如何使用django-celery完成异步任务1(转)

    原文链接: http://www.weiguda.com/blog/73/ 本篇博文主要介绍在开发环境中的celery使用,请勿用于部署服务器. 许多Django应用需要执行异步任务, 以便不耽误ht ...

  3. Django中的许可(Permissions)和用户组(Group)

    Reference: http://www.cnblogs.com/esperyong/archive/2012/12/20/2826690.html 接着上面的3篇讨论文章,我们阐述了Django中 ...

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

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

  5. django中日志配置

    # ======日志配置====== # 错误优先级:NOTSET < DEBUG < INFO < WARNING < ERROR < CRITICAL # Djang ...

  6. python日志轮转RotatingFileHandler在django中的一个bug

    简介 大量过时的日志会占用硬盘空间,甚至长时间运行不注意会占满硬盘导致宕机,那么就可以使用内建logging模块根据文件大小(logging.handlers.RotatingFileHandler) ...

  7. django中的ORM与 应用与补充

    目录 django中的ORM与 应用与补充 ORM与数据的对应关系 ORM 常用字段 ORM 其他字段 自定义字段 字段参数 Model Meta参数 常用13中查询(必会) 单表查询的双下划线应用 ...

  8. 关于Django中ORM数据库迁移的配置

    Django中ORM数据库迁移配置 1,若想将模型转为mysql数据库中的表,需要在settings中配置: DATABASES = { 'default': { 'ENGINE': 'django. ...

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

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

随机推荐

  1. Python数据处理实例

    使用python进行数据处理的实例(数据为某公司HR部门关于员工信息的部分摘录,kaggle上面的一次赛题) https://www.kaggle.com/c/kfru-dbm-hr-analytic ...

  2. Windows Server 2008 R2 FTP无法从外部访问的解决方法

    在Windows Server 2008 R2中配置好FTP服务器后,可以在本机访问,但是无法从另一台电脑访问.原因就是在于防火墙没有配置好. 1.首先检查服务器管理器中的入站规则,确保已启用FTP服 ...

  3. Oracle数据类型(4)

    字符类型: CHAR(size):固定长度字符串,最大长度2000 bytes VARCHAR2(size):可变长度的字符串,最大长度4000 bytes,可做索引的最大长度749 NCHAR(si ...

  4. Easy-RSA 3快速入门自述文件

    Easy-RSA 3快速入门自述文件 这是使用Easy-RSA版本3的快速入门指南.运行./easyrsa -h可以找到有关使用和特定命令的详细帮助.可以在doc /目录中找到其他文档. 如果您从Ea ...

  5. 解决You have new mail in /var/spool/mail/root提示

    终端远程登陆后经常提示You have new mail in /var/spool/mail/root 这个提示是LINUX会定时查看LINUX各种状态做汇总,每经过一段时间会把汇总的信息发送的ro ...

  6. 伸展树基础(Splay)

    3224: Tyvj 1728 普通平衡树 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 3948  Solved: 1627 [Submit][St ...

  7. java基础(6)--数组和方法

    数组 1. 什么是数组? 数组是相同数据类型的元素组成的集合.这些元素按线性顺序排列.所谓线性顺序是指除第一个元素外,每一个元素都有唯一的前驱元素:除最后一个元素外,每一个元素都有唯一的后继元素.(“ ...

  8. mysql——jdbc驱动下载&连接mysql例子

    mysql-connector-java-5.1.46.zip[解压后里面jar文件就是所需要的] https://dev.mysql.com/get/Downloads/Connector-J/my ...

  9. [WPF+Prism]WPF个人集成平台

    前段时间学习了一下Prism,感觉应该找个机会实践一下,而且前段时间,贱内(希望我老婆看不到这篇文章:))让我帮她做个定时提醒的小工具,做好之后感觉以前做了好多自己能用的小工具,如果能够整合到一起,该 ...

  10. sklearn中预测模型的score函数

    sklearn.linear_model.LinearRegression.score score(self, X, y, sample_weight=None) Returns the coeffi ...