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 数据加密代码
Dec 24 Python
python私有属性和方法实例分析
Jan 15 Python
Python md5与sha1加密算法用法分析
Jul 14 Python
Python决策树分类算法学习
Dec 22 Python
Python中对数组集进行按行打乱shuffle的方法
Nov 08 Python
对Python3+gdal 读取tiff格式数据的实例讲解
Dec 04 Python
python多进程并行代码实例
Sep 30 Python
关于ZeroMQ 三种模式python3实现方式
Dec 23 Python
opencv python 图片读取与显示图片窗口未响应问题的解决
Apr 24 Python
使用python采集Excel表中某一格数据
May 14 Python
Python第三方包PrettyTable安装及用法解析
Jul 08 Python
Python Web项目Cherrypy使用方法镜像
Nov 05 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
什么是调频(FM)、调幅(AM)、短波(SW)、长波(LW)
2021/03/01 无线电
php函数指定默认值方法的小例子
2013/12/04 PHP
PHP GD库生成图像的几个函数总结
2014/11/19 PHP
PHP获取ip对应地区和使用网络类型的方法
2015/03/11 PHP
Nigma vs Alliance BO5 第二场2.14
2021/03/10 DOTA
简单的JS多重继承示例
2008/03/13 Javascript
jquery ajax的success回调函数中实现按钮置灰倒计时
2013/11/19 Javascript
JS小功能(button选择颜色)简单实例
2013/11/29 Javascript
js获取input长度并根据页面宽度设置其大小及居中对齐
2014/08/22 Javascript
JsRender for index循环索引用法详解
2014/10/31 Javascript
JavaScript设计模式之装饰者模式介绍
2014/12/28 Javascript
JavaScript中number转换成string介绍
2014/12/31 Javascript
jQuery操作JSON的CRUD用法实例
2015/02/25 Javascript
jquery实现标签上移、下移、置顶
2015/04/26 Javascript
vue过渡和animate.css结合使用详解
2017/06/14 Javascript
微信小程序中使用Promise进行异步流程处理的实例详解
2017/08/17 Javascript
JS数组交集、并集、差集的示例代码
2017/08/23 Javascript
仿淘宝JSsearch搜索下拉深度用法
2018/01/15 Javascript
微信小程序实现吸顶效果
2020/01/08 Javascript
JS函数进阶之继承用法实例分析
2020/01/15 Javascript
微信小程序如何实现点击图片放大功能
2020/01/21 Javascript
VUE项目实现主题切换的多种方法
2020/11/26 Vue.js
Python实现的维尼吉亚密码算法示例
2018/04/12 Python
Sanic框架基于类的视图用法示例
2018/07/18 Python
Python urllib2运行过程原理解析
2020/06/04 Python
CSS3 please 跨浏览器的CSS3产生器
2010/03/14 HTML / CSS
西班牙宠物用品和食品网上商店:Tiendanimal
2019/06/06 全球购物
人力资源经理自我评价
2014/01/04 职场文书
2014年小学元旦活动方案
2014/02/12 职场文书
《我的信念》教学反思
2014/02/15 职场文书
工艺工程师岗位职责
2014/03/04 职场文书
毕业生欢送会主持词
2014/03/31 职场文书
和解协议书
2014/04/16 职场文书
运动会观后感
2015/06/09 职场文书
2016国庆节67周年寄语
2015/12/07 职场文书
MySQL GTID复制的具体使用
2022/05/20 MySQL