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制作简单的钢琴程序的教程
Apr 01 Python
详解Python2.x中对Unicode编码的使用
Apr 03 Python
Python首次安装后运行报错(0xc000007b)的解决方法
Oct 18 Python
Python实现批量检测HTTP服务的状态
Oct 27 Python
pygame库实现移动底座弹球小游戏
Apr 14 Python
解决Python使用列表副本的问题
Dec 19 Python
jupyter notebook参数化运行python方式
Apr 10 Python
树莓派升级python的具体步骤
Jul 05 Python
matplotlib自定义鼠标光标坐标格式的实现
Jan 08 Python
python+opencv3.4.0 实现HOG+SVM行人检测的示例代码
Jan 28 Python
jupyter notebook指定启动目录的方法
Mar 02 Python
Python机器学习应用之工业蒸汽数据分析篇详解
Jan 18 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读取大文件示例分享(文件操作类)
2014/04/13 PHP
PHP 读取和编写 XML
2014/11/19 PHP
PHP常用处理静态操作类
2015/04/03 PHP
示例详解Laravel的注册重构
2016/08/14 PHP
EarthLiveSharp中cloudinary的CDN图片缓存自动清理python脚本
2017/04/04 PHP
php+Ajax处理xml与json格式数据的方法示例
2019/03/04 PHP
JQuery在光标位置插入内容的实现代码
2010/06/18 Javascript
javascript采用数组实现tab菜单切换效果
2012/12/12 Javascript
使用JS读取XML文件的方法
2016/11/25 Javascript
React Native基础入门之初步使用Flexbox布局
2018/07/02 Javascript
JavaScript实现图片伪异步上传过程解析
2020/04/10 Javascript
React实现类似淘宝tab居中切换效果的示例代码
2020/06/02 Javascript
如何实现echarts markline标签名显示自己想要的
2020/07/20 Javascript
JavaScript事件概念详解(区分静态注册和动态注册)
2021/02/05 Javascript
[01:28:56]2014 DOTA2华西杯精英邀请赛 5 24 CIS VS DK
2014/05/26 DOTA
python中Flask框架简单入门实例
2015/03/21 Python
python根据出生日期获得年龄的方法
2015/03/31 Python
python 定时修改数据库的示例代码
2018/04/08 Python
Sanic框架应用部署方法详解
2018/07/18 Python
浅谈Python类中的self到底是干啥的
2019/11/11 Python
Python3.x+迅雷x 自动下载高分电影的实现方法
2020/01/12 Python
部署Django到阿里云服务器教程示例
2020/06/03 Python
css图标制作教程制作云图标
2014/01/19 HTML / CSS
css3隔行变换色实现示例
2014/02/19 HTML / CSS
Dune London官网:英国著名奢华鞋履品牌
2017/11/30 全球购物
英国电子产品购物网站:TobyDeals
2018/07/30 全球购物
马来西亚在线健康商店:Medipal Malaysia
2020/04/13 全球购物
4s店总经理岗位职责
2013/12/31 职场文书
乡镇干部个人对照检查材料思想汇报
2014/10/04 职场文书
民主评议党员登记表自我评价
2014/10/20 职场文书
单位综合评价意见
2015/06/05 职场文书
工商局调档介绍信
2015/10/22 职场文书
2016大学生形势与政策心得体会
2016/01/12 职场文书
2019年聘任书的写作格式及范文!
2019/07/03 职场文书
导游词之江苏同里古镇
2019/11/18 职场文书
python基础之停用词过滤详解
2021/04/21 Python