如何在django中添加日志功能


Posted in Python onFebruary 06, 2020

官方文档 猛戳这里

在settings中配置以下代码

#LOGGING_DIR 日志文件存放目录
LOGGING_DIR = "logs" # 日志存放路径
if not os.path.exists(LOGGING_DIR):
 os.mkdir(LOGGING_DIR)
import logging
LOGGING = {
 'version': 1,
 'disable_existing_loggers': False,
 'formatters': { #格式化器
  'standard': {
   'format': '[%(levelname)s][%(asctime)s][%(filename)s][%(funcName)s][%(lineno)d] > %(message)s'
  },
  'simple': {
   'format': '[%(levelname)s]> %(message)s'
  },
 },
 'filters': {
  'require_debug_true': {
   '()': 'django.utils.log.RequireDebugTrue',
  },
 },
 'handlers': {
  'console': {
   'level': 'DEBUG',
   'filters': ['require_debug_true'],
   'class': 'logging.StreamHandler',
   'formatter': 'simple'
  },
  'file_handler': {
    'level': 'INFO',
    'class': 'logging.handlers.TimedRotatingFileHandler',
    'filename': '%s/django.log' % LOGGING_DIR, #具体日志文件的名字
    'formatter':'standard'
  }, # 用于文件输出
  'mail_admins': {
   'level': 'ERROR',
   'class': 'django.utils.log.AdminEmailHandler',
    'formatter':'standard'
  },
 },
 'loggers': { #日志分配到哪个handlers中
  'mydjango': {
   'handlers': ['console','file_handler'],
   'level':'DEBUG', 
   'propagate': True,
  },
  'django.request': {
   'handlers': ['mail_admins'],
   'level': 'ERROR',
   'propagate': False,
  },

####如果要将get,post请求同样写入到日志文件中,则这个触发器的名字必须交django,然后写到handler中
 }
}

在settings中写完配置之后,下面就要具体到相应的视图函数中了。注意:这里我们在实施到具体函数或方法的时候需要手动捕获异常

然后视图函数中

#这里我们模拟一个登陆来写
log = logging.getLogger('mydjango') #这里的mydjango是settings中loggers里面对应的名字

class Login(View):
 def get(self,request):
  return render(request,'login.html')
 def post(self,request):
  user = request.POST.get('username')
  pwd = request.POST.get('password')
  try:
   s = 1/0
  except Exception as e:
   log.error(e)

总结

以上所述是小编给大家介绍的如何在django中添加日志功能,希望对大家有所帮助!

Python 相关文章推荐
python字典序问题实例
Sep 26 Python
python3使用pyqt5制作一个超简单浏览器的实例
Oct 19 Python
Python读csv文件去掉一列后再写入新的文件实例
Dec 28 Python
python实现画圆功能
Jan 25 Python
Python内置模块ConfigParser实现配置读写功能的方法
Feb 12 Python
PHP实现发送和接收JSON请求
Jun 07 Python
Python中的函数式编程:不可变的数据结构
Oct 08 Python
Django对数据库进行添加与更新的例子
Jul 12 Python
使用pip安装python库的多种方式
Jul 31 Python
django实现类似触发器的功能
Nov 15 Python
python中openpyxl和xlsxwriter对Excel的操作方法
Mar 01 Python
python实战之一步一步教你绘制小猪佩奇
Apr 22 Python
keras tensorflow 实现在python下多进程运行
Feb 06 #Python
Scrapy框架实现的登录网站操作示例
Feb 06 #Python
Tensorflow 多线程设置方式
Feb 06 #Python
Scrapy框架基本命令与settings.py设置
Feb 06 #Python
python opencv圆、椭圆与任意多边形的绘制实例详解
Feb 06 #Python
Python输出指定字符串的方法
Feb 06 #Python
python实现简单飞行棋
Feb 06 #Python
You might like
php 无限分类的树类代码
2009/12/03 PHP
析构函数与php的垃圾回收机制详解
2013/10/28 PHP
php实现mysql数据库操作类分享
2014/02/14 PHP
PHP中substr()与explode()函数用法分析
2014/11/24 PHP
Maps Javascript
2007/01/22 Javascript
FF IE兼容性的修改小结
2009/09/02 Javascript
jquery中get,post和ajax方法的使用小结
2014/02/04 Javascript
jquery带下拉菜单和焦点图代码分享
2015/08/24 Javascript
Bootstrap模仿起筷首页效果
2016/05/09 Javascript
javascript类型系统_正则表达式RegExp类型详解
2016/06/24 Javascript
对比分析Django的Q查询及AngularJS的Datatables分页插件
2017/02/07 Javascript
JavaScript代码实现txt文件的上传预览功能
2018/03/27 Javascript
Element Card 卡片的具体使用
2020/07/26 Javascript
vue 通过base64实现图片下载功能
2020/12/19 Vue.js
python查询mysql中文乱码问题
2014/11/09 Python
python把1变成01的步骤总结
2019/02/27 Python
django formset实现数据表的批量操作的示例代码
2019/12/06 Python
python 画3维轨迹图并进行比较的实例
2019/12/06 Python
pandas实现将日期转换成timestamp
2019/12/07 Python
Python实现密码薄文件读写操作
2019/12/16 Python
Django 设置多环境配置文件载入问题
2020/02/25 Python
python解包概念及实例
2021/02/17 Python
html5实现九宫格抽奖可固定抽中某项奖品
2020/06/15 HTML / CSS
什么是servlet链?
2014/07/13 面试题
大学生专业个人学习的自我评价
2013/10/26 职场文书
乡镇八一建军节活动方案
2014/08/24 职场文书
企业三严三实学习心得体会
2014/10/13 职场文书
2014年学生会生活部工作总结
2014/11/07 职场文书
评职称个人总结
2015/03/05 职场文书
求职信范文怎么写
2015/03/19 职场文书
nginx配置ssl实现https的方法示例
2021/03/31 Servers
如何利用React实现图片识别App
2022/02/18 Javascript
MySQL学习之基础命令实操总结
2022/03/19 MySQL
【DOTA2】总决赛血虐~ XTREME GAMING vs MAGMA - OGA DOTA PIT 2022 CN
2022/04/02 DOTA
Python中Matplotlib的点、线形状、颜色以及绘制散点图
2022/04/07 Python
如何解决flex文本溢出问题小结
2022/07/15 HTML / CSS