如何在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写的一个简单DNS服务器实例
Jun 04 Python
用Python编写一个简单的Lisp解释器的教程
Apr 03 Python
Python面向对象编程基础解析(一)
Oct 26 Python
python单例模式实例解析
Aug 28 Python
使用pip发布Python程序的方法步骤
Oct 11 Python
浅谈python3发送post请求参数为空的情况
Dec 28 Python
Python定时任务随机时间执行的实现方法
Aug 14 Python
python基础教程之while循环
Aug 14 Python
python GUI库图形界面开发之PyQt5日期时间控件QDateTimeEdit详细使用方法与实例
Feb 27 Python
3种适用于Python的疯狂秘密武器及原因解析
Apr 29 Python
MAC平台基于Python Appium环境搭建过程图解
Aug 13 Python
MoviePy常用剪辑类及Python视频剪辑自动化
Dec 18 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
win7+apache+php+mysql环境配置操作详解
2013/06/10 PHP
Yii2.0 模态弹出框+ajax提交表单
2016/05/22 PHP
redirect_uri参数错误的解决方法(必看)
2017/02/16 PHP
php 判断IP为有效IP地址的方法
2018/01/28 PHP
javascript 处理事件绑定的一些兼容写法
2009/12/24 Javascript
JavaScript 题型问答有答案参考
2010/02/17 Javascript
Knockoutjs快速入门(经典)
2012/12/24 Javascript
js操作checkbox遇到的问题解决
2013/06/29 Javascript
全面兼容的javascript时间格式化函数(比较实用)
2014/05/14 Javascript
兼容Firefox的Javascript XSLT 处理XML文件
2014/12/31 Javascript
浅析Node.js中的内存泄漏问题
2015/06/23 Javascript
jquery+ajax实现注册实时验证实例详解
2015/12/08 Javascript
jquery动态遍历Json对象的属性和值的方法
2016/07/27 Javascript
解决拦截器对ajax请求的拦截实例详解
2016/12/21 Javascript
JS解决移动web开发手机输入框弹出的问题
2017/03/31 Javascript
jQuery加密密码到cookie的实现代码
2017/04/18 jQuery
jQuery实现菜单栏导航效果
2017/08/15 jQuery
微信小程序获取手机系统信息的方法【附源码下载】
2017/12/07 Javascript
jQuery实现的卷帘门滑入滑出效果【案例】
2019/02/18 jQuery
js实现简单的点名器随机色实例代码
2020/09/20 Javascript
如何在Express4.x中愉快地使用async的方法
2020/11/18 Javascript
[03:26]回顾2015国际邀请赛中国区预选赛
2015/06/09 DOTA
[01:08:17]2018DOTA2亚洲邀请赛3月29日 小组赛B组 EG VS VGJ.T
2018/03/30 DOTA
python正则表达式抓取成语网站
2013/11/20 Python
python中函数默认值使用注意点详解
2016/06/01 Python
Python编程实现二叉树及七种遍历方法详解
2017/06/02 Python
python3中的eval和exec的区别与联系
2019/10/10 Python
python中的subprocess.Popen()使用详解
2019/12/25 Python
Python WebSocket长连接心跳与短连接的示例
2020/11/24 Python
EJB实例的生命周期
2016/10/28 面试题
农贸市场管理制度
2014/01/31 职场文书
乡镇消防工作实施方案
2014/03/27 职场文书
小学安全工作汇报材料
2014/08/19 职场文书
SQLServer2019 数据库环境搭建与使用的实现
2021/04/08 SQL Server
为了顺利买到演唱会的票用Python制作了自动抢票的脚本
2021/10/16 Python
深入理解go缓存库freecache的使用
2022/02/15 Golang