Django 使用logging打印日志的实例

yipeiwu_com6年前Python基础

Django使用python自带的logging 作为日志打印工具。简单介绍下logging。

logging 是线程安全的,其主要由4部分组成:

Logger

用户使用的直接接口,将日志传递给Handler

Handler

控制日志输出到哪里,console,file…

一个logger可以有多个Handler

Filter

控制哪些日志可以从logger流向Handler

Formatter

控制日志的格式

用户使用logging.getLogger([name])获取logger实例。

如果没有名字,返回logger层级中的根logger(root logger)。以相同名字调用该函数总是返回同一个logger实例。这意味着logger实例不需要在应用的各个部分之间传来传去。

Django通过在settings文件中使用LOGGING来定制日志输出(包括定义logger, handler, formatter等)

例如,settings文件中定义如下:

LOGGING = {
 'version': 1,
 'disable_existing_loggers': False,
 'formatters': {
  'verbose': {
   'format': '[%(asctime)s] [%(levelname)s] %(message)s'
  },
 },
 'handlers': {
  'console':{
   'level':'INFO',
   'class':'logging.StreamHandler',
   'formatter': 'verbose'
  },
  'file': {
   'level': 'INFO',
   'class': 'logging.FileHandler',
   'filename': 'D:/monitor.log',
   'formatter': 'verbose'
  },
  'email': {
   'level': 'ERROR',
   'class': 'django.utils.log.AdminEmailHandler',
   'include_html' : True,
  }
 },
 'loggers': {
  'django': {
   'handlers': ['console', 'file', 'email'],
   'level': 'INFO',
   'propagate': True,
  },
 },
}

代码中打印日志:

logger = logging.getLogger(‘django')
logger.info(“This is an error msg”)

[2017-07-15 17:44:51,316] [ERROR] This is an error msg

这样,日志就被打印到终端和文件。

关于django logging 想了解更多,可参考官网

https://docs.djangoproject.com/en/1.11/topics/logging/

以上这篇Django 使用logging打印日志的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python实现解数独程序代码

python实现解数独程序代码

偶然发现linux系统附带的一个数独游戏,打开玩了几把。无奈是个数独菜鸟,以前没玩过,根本就走不出几步就一团浆糊了。 于是就打算借助计算机的强大运算力来暴力解数独,还是很有乐趣的。 下面...

详解python中docx库的安装过程

详解python中docx库的安装过程

python中docx库的简介 python-docx包,这是一个很强大的包,可以用来创建docx文档,包含段落、分页符、表格、图片、标题、样式等几乎所有的word文档中能常用的功能都包...

python 批量修改/替换数据的实例

在进行数据操作时,经常会根据条件批量的修改数据,如以下数据,按照日期的条件,将部门日期下的promotion改为1 tot_qty...

老生常谈Python序列化和反序列化

通过将对象序列化可以将其存储在变量或者文件中,可以保存当时对象的状态,实现其生命周期的延长。并且需要时可以再次将这个对象读取出来。Python中有几个常用模块可实现这一功能。 pickl...

Python有序字典简单实现方法示例

Python有序字典简单实现方法示例

本文实例讲述了Python有序字典简单实现方法。分享给大家供大家参考,具体如下: 代码: # -*- coding: UTF-8 -*- import collections pri...