如何在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 相关文章推荐
解决windows下Sublime Text 2 运行 PyQt 不显示的方法分享
Jun 18 Python
Python编写电话薄实现增删改查功能
May 07 Python
浅谈机器学习需要的了解的十大算法
Dec 15 Python
python3调用R的示例代码
Feb 23 Python
python人民币小写转大写辅助工具
Jun 20 Python
django从请求到响应的过程深入讲解
Aug 01 Python
PyCharm设置护眼背景色的方法
Oct 29 Python
Python3安装pip工具的详细步骤
Oct 14 Python
浅谈keras保存模型中的save()和save_weights()区别
May 21 Python
pandas处理csv文件的方法步骤
Oct 16 Python
教你用Python matplotlib库制作简单的动画
Jun 11 Python
Python实现归一化算法详情
Mar 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
分享自定义的几个PHP功能函数
2015/04/15 PHP
php分割合并两个字符串的函数实例
2015/06/19 PHP
强制设为首页代码
2006/06/19 Javascript
javascript 函数使用说明
2010/04/07 Javascript
jQuery解析XML文件同时动态增加js文件的方法
2015/06/01 Javascript
Jquery EasyUI $.Parser
2017/06/02 jQuery
详解Vue.js之视图和数据的双向绑定(v-model)
2017/06/23 Javascript
微信小程序实现人脸检测功能
2018/05/25 Javascript
浅谈JS和jQuery的区别
2019/03/27 jQuery
纯异步nodejs文件夹(目录)复制功能
2019/09/03 NodeJs
搭建Vue从Vue-cli到router路由护卫的实现
2019/11/14 Javascript
快速解决element的autofocus失效问题
2020/09/08 Javascript
[50:17]Newbee vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
[07:54]DOTA2-DPC中国联赛 正赛 iG vs VG 选手采访
2021/03/11 DOTA
python在控制台输出进度条的方法
2015/06/20 Python
Python编程求解二叉树中和为某一值的路径代码示例
2018/01/04 Python
浅谈Python 递归算法指归
2019/08/22 Python
Python3实现监控新型冠状病毒肺炎疫情的示例代码
2020/02/13 Python
python GUI框架pyqt5 对图片进行流式布局的方法(瀑布流flowlayout)
2020/03/12 Python
解决django xadmin主题不显示和只显示bootstrap2的问题
2020/03/30 Python
Python使用Excel将数据写入多个sheet
2020/05/16 Python
Python中Pyspider爬虫框架的基本使用详解
2021/01/27 Python
CSS3 mask 遮罩的具体使用方法
2017/11/03 HTML / CSS
HTML5中的nav标签学习笔记
2016/06/24 HTML / CSS
iframe与window.onload如何使用详解
2020/05/07 HTML / CSS
英国最大的香水商店:The Fragrance Shop
2018/07/06 全球购物
美赞臣新加坡官方旗舰店:Enfagrow新加坡
2019/05/15 全球购物
联想印度官方网上商店:Lenovo India
2019/08/24 全球购物
荷兰度假屋租赁网站:Aan Zee
2020/02/28 全球购物
部队万能检讨书
2014/02/20 职场文书
挂靠协议书范本
2014/04/22 职场文书
堂吉诃德读书笔记
2015/06/30 职场文书
2016年“12.3”国际残疾人日活动总结
2016/04/01 职场文书
go设置多个GOPATH的方式
2021/05/05 Golang
MySQL子查询中order by不生效问题的解决方法
2021/08/02 MySQL
如何在python中实现ECDSA你知道吗
2021/11/23 Python