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 相关文章推荐
10款最好的Web开发的 Python 框架
Mar 18 Python
Python中的各种装饰器详解
Apr 11 Python
pycharm安装和首次使用教程
Aug 27 Python
Python实现统计英文文章词频的方法分析
Jan 28 Python
ERLANG和PYTHON互通实现过程详解
Jul 05 Python
Python Sympy计算梯度、散度和旋度的实例
Dec 06 Python
Pytorch 实现计算分类器准确率(总分类及子分类)
Jan 18 Python
代码总结Python2 和 Python3 字符串的区别
Jan 28 Python
通过Turtle库在Python中绘制一个鼠年福鼠
Feb 03 Python
Python连接SQLite数据库并进行增册改查操作方法详解
Feb 18 Python
用python对oracle进行简单性能测试
Dec 05 Python
python正则表达式re.match()匹配多个字符方法的实现
Jan 27 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/08/27 PHP
PHP form 表单传参明细研究
2009/07/17 PHP
如何用PHP实现插入排序?
2013/04/10 PHP
thinkphp中的多表关联查询的实例详解
2017/10/12 PHP
分享别人写的一个小型js框架
2007/08/13 Javascript
一个很酷的拖动层的js类,兼容IE及Firefox
2009/06/23 Javascript
js 表格隔行颜色
2009/12/02 Javascript
jquery URL参数判断,确定菜单样式
2010/05/31 Javascript
Knockout visible绑定使用方法
2013/11/15 Javascript
js改变鼠标的形状和样式的方法
2014/03/31 Javascript
JavaScript作用域链示例分享
2014/05/27 Javascript
Node.js的包详细介绍
2015/01/14 Javascript
JavaScript在浏览器标题栏上显示当前日期和时间的方法
2015/03/19 Javascript
Nodejs全局安装和本地安装的不同之处
2016/07/04 NodeJs
基于jPlayer三分屏的制作方法
2016/12/21 Javascript
Node.js使用NodeMailer发送邮件实例代码
2017/03/06 Javascript
微信小程序实战之轮播图(3)
2017/04/17 Javascript
node.js 用socket实现聊天的示例代码
2017/10/17 Javascript
Vuex中mutations与actions的区别详解
2018/03/01 Javascript
JavaScript显式数据类型转换详解
2019/03/18 Javascript
研究Python的ORM框架中的SQLAlchemy库的映射关系
2015/04/25 Python
Python解决八皇后问题示例
2018/04/22 Python
python实现Dijkstra静态寻路算法
2019/01/17 Python
python PIL和CV对 图片的读取,显示,裁剪,保存实现方法
2019/08/07 Python
python 已知一个字符,在一个list中找出近似值或相似值实现模糊匹配
2020/02/29 Python
浅谈pytorch 模型 .pt, .pth, .pkl的区别及模型保存方式
2020/05/25 Python
基于css3实现漂亮便签样式
2013/03/18 HTML / CSS
门诊挂号室室长岗位职责
2013/11/27 职场文书
群众路线党课主持词
2014/04/01 职场文书
《闻一多先生的说和做》教学反思
2014/04/28 职场文书
酒店餐厅2014重阳节活动策划方案
2014/09/16 职场文书
会计工作检讨书
2015/02/19 职场文书
2015年党建工作目标责任书
2015/05/08 职场文书
首都博物馆观后感
2015/06/05 职场文书
2016年学校十一国庆节活动总结
2016/04/01 职场文书
【海涛dota解说】一房久违的影魔魂守二连发
2022/04/01 DOTA