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实现排序算法
Feb 14 Python
python3.4下django集成使用xadmin后台的方法
Aug 15 Python
python实现两个文件合并功能
Apr 01 Python
Python3爬虫学习之MySQL数据库存储爬取的信息详解
Dec 12 Python
Python中查看变量的类型内存地址所占字节的大小
Jun 26 Python
python动态进度条的实现代码
Jul 03 Python
解决python tkinter界面卡死的问题
Jul 17 Python
在django view中给form传入参数的例子
Jul 19 Python
PYQT5开启多个线程和窗口,多线程与多窗口的交互实例
Dec 13 Python
Pytorch中.new()的作用详解
Feb 18 Python
django自带的权限管理Permission用法说明
May 13 Python
Python字符串对齐、删除字符串不需要的内容以及格式化打印字符
Jan 23 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
Dedecms V3.1 生成HTML速度的优化办法
2007/03/18 PHP
PHP详解ASCII码对照表与字符转换
2011/12/05 PHP
php指定函数参数默认值示例代码
2013/12/04 PHP
php结合正则获取字符串中数字
2015/06/19 PHP
修改WordPress中文章编辑器的样式的方法详解
2015/12/15 PHP
PHP使用递归算法无限遍历数组示例
2017/01/13 PHP
PHP实现将多个文件压缩成zip格式并下载到本地的方法示例
2018/05/23 PHP
IE和Firefox下event事件杂谈
2009/12/18 Javascript
jQuery dialog 异步调用ashx,webservice数据的代码
2010/08/03 Javascript
js下判断 iframe 是否加载完成的完美方法
2010/10/26 Javascript
jQuery前端框架easyui使用Dialog时bug处理
2014/12/05 Javascript
jQuery源码分析之Callbacks详解
2015/03/13 Javascript
jQuery插件scroll实现无缝滚动效果
2015/04/27 Javascript
jQuery仿gmail实现fixed布局的方法
2015/05/27 Javascript
js获取鼠标点击的对象,点击另一个按钮删除该对象的实现代码
2016/05/13 Javascript
详解JavaScript中的属性和特性
2016/12/08 Javascript
JavaScript运动框架 解决防抖动问题、悬浮对联(二)
2017/05/17 Javascript
JS实现键值对遍历json数组功能示例
2018/05/30 Javascript
Vue实现星级评价效果实例详解
2019/12/30 Javascript
[01:02:53]DOTA2上海特级锦标赛主赛事日 - 5 总决赛Liquid VS Secret第二局
2016/03/06 DOTA
[41:56]Spirit vs Liquid Supermajor小组赛A组 BO3 第一场 6.2
2018/06/03 DOTA
使用python实现正则匹配检索远端FTP目录下的文件
2015/03/25 Python
在Python中使用全局日志时需要注意的问题
2015/05/06 Python
Python3实现Web网页图片下载
2016/01/28 Python
python实现数据写入excel表格
2018/03/25 Python
jupyter notebook oepncv 显示一张图像的实现
2020/04/24 Python
Lacoste澳大利亚官网:服装、鞋类及配饰
2018/11/14 全球购物
几道Web/Ajax的面试题
2016/11/05 面试题
好的自荐信的要求
2013/10/30 职场文书
趣味体育活动方案
2014/02/08 职场文书
中学生国旗下讲话稿
2014/04/26 职场文书
教研处工作方案
2014/05/26 职场文书
我的长征观后感
2015/06/09 职场文书
不知如何爱孩子,这些方法教会您
2019/08/06 职场文书
HTML+JS实现在线朗读器
2022/02/15 Javascript
SQL Server查询某个字段在哪些表中存在
2022/03/03 SQL Server