Python Django框架实现应用添加logging日志操作示例


Posted in Python onMay 17, 2019

本文实例讲述了Python Django框架实现应用添加logging日志。分享给大家供大家参考,具体如下:

Django uses Python's builtin logging module to perform system logging.

Django使用python的内建日志模块来记录系统日志,但是要想在django应用中开启此功能使我们的部分操作能够被记录到日志文件,那么就需要进行一定的配置并且根据具体的log类型来进行调用

step 1:配置setting.py

以下配置除了filename和formatters需要根据实际情况来修改外都可以保持不变

LOGGING = {
  'version': 1,
  'disable_existing_loggers': False,#此选项开启表示禁用部分日志,不建议设置为True
  'formatters': {
    'verbose': {
      'format': '%(levelname)s %(asctime)s %(message)s'#日志格式
    },
    'simple': {
      'format': '%(levelname)s %(message)s'
    },
  },
  'filters': {
    'require_debug_true': {
      '()': 'django.utils.log.RequireDebugTrue',#过滤器,只有当setting的DEBUG = True时生效
    },
  },
  'handlers': {
    'console': {
      'level': 'DEBUG',
      'filters': ['require_debug_true'],
      'class': 'logging.StreamHandler',
      'formatter': 'verbose'
    },
    'file': {#重点配置部分
      'level': 'DEBUG',
      'class': 'logging.FileHandler',
      'filename': '/home/lockey23/myapp/myapp/debug.log',#日志保存文件
      'formatter': 'verbose'#日志格式,与上边的设置对应选择
        }
  },
  'loggers': {
    'django': {#日志记录器
      'handlers': ['file'],
      'level': 'DEBUG',
      'propagate': True,
    }
  },
}

step 2: 实际调用

比如说我们想在某些view中调用logger来记录操作,如下:

import logging
logger = logging.getLogger('django')#这里的日志记录器要和setting中的loggers选项对应,不能随意给参
#接下来就是调用了:
logger.debug('[Debug] '+ msg)
logger.info('[Success] '+ msg)
logger.warning('[Warning] '+ msg)
logger.error('[Error] '+ msg)
logger.critical('[Critical] '+ msg)
......
if auth_pass:
  logger.info('[Success] '+ user +' has logged in!')
  return JsonResponse({'result': 'Success', 'message': 'Login successfully.'})
else:
  logger.warning('[Failed] '+ user + ' failed to login!')

希望本文所述对大家基于Django框架的Python程序设计有所帮助。

Python 相关文章推荐
python list语法学习(带例子)
Nov 01 Python
python解析模块(ConfigParser)使用方法
Dec 10 Python
Python 正则表达式实现计算器功能
Apr 29 Python
详解Python3.6安装psutil模块和功能简介
May 30 Python
Python实现调用另一个路径下py文件中的函数方法总结
Jun 07 Python
Python: 传递列表副本方式
Dec 19 Python
Python 如何展开嵌套的序列
Aug 01 Python
如何使用python socket模块实现简单的文件下载
Sep 04 Python
VSCODE配置Markdown及Markdown基础语法详解
Jan 19 Python
Python绘制词云图之可视化神器pyecharts的方法
Feb 23 Python
Matlab求解数组中的最大值及它所在的具体位置
Apr 16 Python
Python基础之数据结构详解
Apr 28 Python
Python实现通过解析域名获取ip地址的方法分析
May 17 #Python
如何用C代码给Python写扩展库(Cython)
May 17 #Python
python实现坦克大战游戏 附详细注释
Mar 27 #Python
六行python代码的爱心曲线详解
May 17 #Python
python使用pygame模块实现坦克大战游戏
Mar 25 #Python
Django如何开发简单的查询接口详解
May 17 #Python
详解python函数的闭包问题(内部函数与外部函数详述)
May 17 #Python
You might like
PHP常用函数小技巧
2008/09/11 PHP
php加密解密字符串示例
2016/10/13 PHP
Yii2语言国际化的配置教程
2018/08/19 PHP
gearman管理工具GearmanManager的安装与php使用方法示例
2020/02/27 PHP
JQuery 将元素显示在屏幕的中央的代码
2010/02/27 Javascript
Javascript 按位取反运算符 (~)
2014/02/04 Javascript
SeaJS入门教程系列之使用SeaJS(二)
2014/03/03 Javascript
jQuery+css实现的时钟效果(兼容各浏览器)
2016/01/27 Javascript
jQuery无刷新上传之uploadify3.1简单使用
2016/06/18 Javascript
Angularjs 创建可复用组件实例代码
2016/10/09 Javascript
js实现日期显示的一些操作(实例讲解)
2017/07/27 Javascript
详解react关于事件绑定this的四种方式
2018/03/09 Javascript
Python3搜索及替换文件中文本的方法
2015/05/22 Python
Python读取图片属性信息的实现方法
2016/09/11 Python
Django 使用logging打印日志的实例
2018/04/28 Python
Python 解决中文写入Excel时抛异常的问题
2018/05/03 Python
Python动态生成多维数组的方法示例
2018/08/09 Python
python redis 删除key脚本的实例
2019/02/19 Python
浅谈Python线程的同步互斥与死锁
2020/03/22 Python
Python pandas如何向excel添加数据
2020/05/22 Python
python中def是做什么的
2020/06/10 Python
CSS3 transform的skew属性值图文详解
2014/07/21 HTML / CSS
HTML5 HTMLCollection和NodeList的区别详解
2020/04/29 HTML / CSS
用C或者C++语言实现SOCKET通信
2015/02/24 面试题
校园自助餐厅的创业计划书
2013/12/26 职场文书
幼儿园三八妇女节活动方案
2014/03/11 职场文书
绿色环保演讲稿
2014/05/10 职场文书
社区爱国卫生月活动总结
2014/06/30 职场文书
运动会广播稿200字(10篇)
2014/10/12 职场文书
2014年学生党支部工作总结
2014/12/20 职场文书
杜甫草堂导游词
2015/02/03 职场文书
鲁滨孙漂流记读书笔记
2015/06/30 职场文书
MySQL表的增删改查基础教程
2021/04/07 MySQL
Python实现的扫码工具居然这么好用!
2021/06/07 Python
HashMap实现保存两个key相同的数据
2021/06/30 Java/Android
oracle连接ODBC sqlserver数据源的详细步骤
2021/07/25 Oracle