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实现3行代码解简单的一元一次方程
Aug 18 Python
python判断字符串是否纯数字的方法
Nov 19 Python
详解Django缓存处理中Vary头部的使用
Jul 24 Python
Python中将变量按行写入txt文本中的方法
Apr 03 Python
python utc datetime转换为时间戳的方法
Jan 15 Python
详解python实现交叉验证法与留出法
Jul 11 Python
Python处理session的方法整理
Aug 29 Python
softmax及python实现过程解析
Sep 30 Python
Django框架之中间件MiddleWare的实现
Dec 30 Python
Keras 实现加载预训练模型并冻结网络的层
Jun 15 Python
基于Python-Pycharm实现的猴子摘桃小游戏(源代码)
Feb 20 Python
python数字图像处理数据类型及颜色空间转换
Jun 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
图象函数中的中文显示
2006/10/09 PHP
php中去除所有js,html,css代码
2010/10/12 PHP
javascript应用:Iframe自适应其加载的内容高度
2007/04/10 Javascript
js判断是否为ie的方法小结
2014/01/13 Javascript
javascript 获取元素样式必杀技
2014/05/04 Javascript
JavaScript使表单中的内容显示在屏幕上的方法
2015/06/29 Javascript
拥有一个属于自己的javascript表单验证插件
2016/03/24 Javascript
JSON字符串和对象相互转换实例分析
2016/06/16 Javascript
js模式化窗口问题![window.dialogArguments]
2016/10/30 Javascript
基于jQuery的select下拉框选择触发事件实例分析
2016/11/18 Javascript
Angular企业级开发——MVC之控制器详解
2017/02/20 Javascript
jQuery轻松实现无缝轮播效果
2017/03/22 jQuery
Bootstrap Table 在指定列中添加下拉框控件并获取所选值
2017/07/31 Javascript
vue2.* element tabs tab-pane 动态加载组件操作
2020/07/19 Javascript
浅谈vue中document.getElementById()拿到的是原值的问题
2020/07/26 Javascript
vue中重定向redirect:‘/index‘,不显示问题、跳转出错的完美解决
2020/09/28 Javascript
[01:12]DOTA2次级职业联赛 - Newbee.Y 战队宣传片
2014/12/01 DOTA
python将ip地址转换成整数的方法
2015/03/17 Python
Python网络编程 Python套接字编程
2017/09/13 Python
django使用admin站点上传图片的实例
2019/07/28 Python
18个Python脚本可加速你的编码速度(提示和技巧)
2019/10/17 Python
python 字典item与iteritems的区别详解
2020/04/25 Python
Python基于pandas爬取网页表格数据
2020/05/11 Python
Python获取excel内容及相关操作代码实例
2020/08/10 Python
Python txt文件如何转换成字典
2020/11/03 Python
东南亚排名第一的服务市场:kaodim
2019/03/28 全球购物
联强国际笔试题面试题
2013/07/10 面试题
药品质量检测应届生求职信
2013/11/14 职场文书
经典演讲稿范文
2013/12/30 职场文书
加多宝凉茶广告词
2014/03/18 职场文书
网络信息安全承诺书
2014/03/26 职场文书
论文指导教师评语
2014/04/28 职场文书
大学毕业谢师宴致辞
2015/07/27 职场文书
Ajax是什么?Ajax高级用法之Axios技术
2021/04/21 Javascript
java多态注意项小结
2021/10/16 Java/Android
Python代码实现双链表
2022/05/25 Python