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 相关文章推荐
使用wxPython获取系统剪贴板中的数据的教程
May 06 Python
深入浅析Python中join 和 split详解(推荐)
Jun 30 Python
Python对象属性自动更新操作示例
Jun 15 Python
python使用epoll实现服务端的方法
Oct 16 Python
Python判断一个三位数是否为水仙花数的示例
Nov 13 Python
Django model select的多种用法详解
Jul 16 Python
python中bytes和str类型的区别
Oct 21 Python
python实现时间序列自相关图(acf)、偏自相关图(pacf)教程
Jun 03 Python
Django如何实现防止XSS攻击
Oct 13 Python
python使用matplotlib的savefig保存时图片保存不完整的问题
Jan 08 Python
pyx文件 生成pyd 文件用于 cython调用的实现
Mar 04 Python
python实现局部图像放大
Nov 17 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之COOKIE支持详解
2010/09/20 PHP
百度地图API应用之获取用户的具体位置
2014/06/10 PHP
深入理解PHP中mt_rand()随机数的安全
2017/10/12 PHP
javascript 构建一个xmlhttp对象池合理创建和使用xmlhttp对象
2010/01/15 Javascript
JS面向对象基础讲解(工厂模式、构造函数模式、原型模式、混合模式、动态原型模式)
2014/08/16 Javascript
javascript关于运动的各种问题经典总结
2015/04/27 Javascript
js带点自动图片轮播幻灯片特效代码分享
2015/09/07 Javascript
JavaScript中undefined和null的区别
2017/05/03 Javascript
详解JavaScript函数callee、call、apply的区别
2019/03/08 Javascript
vue读取本地的excel文件并显示在网页上方法示例
2019/05/29 Javascript
vue-cli3配置与跨域处理方法
2019/08/17 Javascript
JS实现商品橱窗特效
2020/01/09 Javascript
vue中使用router全局守卫实现页面拦截的示例
2020/10/23 Javascript
[11:27]《一刀刀一天》之DOTA全时刻20:TI4总奖金突破920W TS赛事分析
2014/06/18 DOTA
[00:17]游戏风云独家报道:DD赛后说出数字秘密 吓死你们啊!
2014/07/13 DOTA
Python使用django搭建web开发环境
2017/06/09 Python
python reduce 函数使用详解
2017/12/05 Python
Python中Numpy包的安装与使用方法简明教程
2018/07/03 Python
Flask框架通过Flask_login实现用户登录功能示例
2018/07/17 Python
pycharm 在windows上编辑代码用linux执行配置的方法
2018/10/27 Python
Python实现TCP探测目标服务路由轨迹的原理与方法详解
2019/09/04 Python
深入分析python 排序
2020/08/24 Python
Python环境配置实现pip加速过程解析
2020/11/27 Python
地球上最先进的胡子和头发修剪器:Bevel
2018/01/23 全球购物
NBA德国官方网上商店:NBA Store德国
2018/04/13 全球购物
新西兰最大的天然保健及护肤品网站:HealthPost(直邮中国)
2021/02/13 全球购物
本科生求职简历的自我评价
2013/10/21 职场文书
幼儿园教师请假制度
2014/01/16 职场文书
材料专业毕业生求职信
2014/02/26 职场文书
乡村教师党员四风问题对照检查材料思想汇报
2014/10/08 职场文书
售票员岗位职责
2015/02/15 职场文书
讲座通知范文
2015/04/23 职场文书
驻村工作简报
2015/07/20 职场文书
导游词之四川熊猫基地
2020/01/13 职场文书
nginx反向代理配置去除前缀案例教程
2021/07/26 Servers
redis sentinel监控高可用集群实现的配置步骤
2022/04/01 Redis