如何在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标准库之随机数 (math包、random包)介绍
Nov 25 Python
linux平台使用Python制作BT种子并获取BT种子信息的方法
Jan 20 Python
pandas DataFrame数据转为list的方法
Apr 11 Python
Python使用Flask-SQLAlchemy连接数据库操作示例
Aug 31 Python
Python wxPython库Core组件BoxSizer用法示例
Sep 03 Python
python3实现小球转动抽奖小游戏
Apr 15 Python
django数据模型(Model)的字段类型解析
Dec 25 Python
Python3实现发送邮件和发送短信验证码功能
Jan 07 Python
对tensorflow 中tile函数的使用详解
Feb 07 Python
新手入门学习python Numpy基础操作
Mar 02 Python
tensorflow pb to tflite 精度下降详解
May 25 Python
matplotlib画混淆矩阵与正确率曲线的实例代码
Jun 01 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
分页显示Oracle数据库记录的类之一
2006/10/09 PHP
js下函数般调用正则的方法附代码
2008/06/22 PHP
PHP学习之数组值的操作
2011/04/17 PHP
php缩放图片(根据宽高的等比例缩放)实例介绍
2013/06/09 PHP
thinkphp实现163、QQ邮箱收发邮件的方法
2015/12/18 PHP
JavaScript图片放大技术(放大镜)实现代码分享
2013/11/14 Javascript
整理的比较全的event对像在ie与firefox浏览器中的区别
2013/11/25 Javascript
JavaScript中统计Textarea字数并提示还能输入的字符
2014/06/10 Javascript
javascript中Object使用详解
2015/01/26 Javascript
Nodejs Express4.x开发框架随手笔记
2015/11/23 NodeJs
javascript数据结构之双链表插入排序实例详解
2015/11/25 Javascript
AJAX实现瀑布流触发分页与分页触发瀑布流的方法
2016/05/23 Javascript
JavaScript中的各种操作符使用总结
2016/05/26 Javascript
高效的jQuery代码编写技巧总结
2017/02/22 Javascript
Vue.js实战之组件的进阶
2017/04/04 Javascript
解决Jstree 选中父节点时被禁用的子节点也会选中的问题
2017/12/27 Javascript
angularjs中$http异步上传Excel文件方法
2018/02/23 Javascript
Electron中实现大文件上传和断点续传功能
2018/10/28 Javascript
Node.js API详解之 Error模块用法实例分析
2020/05/14 Javascript
详解Vue.js 响应接口
2020/07/04 Javascript
python抓取豆瓣图片并自动保存示例学习
2014/01/10 Python
python实现数值积分的Simpson方法实例分析
2015/06/05 Python
Python常用的爬虫技巧总结
2016/03/28 Python
详解python如何调用C/C++底层库与互相传值
2016/08/10 Python
python中Switch/Case实现的示例代码
2017/11/09 Python
python复制文件到指定目录的实例
2018/04/27 Python
python批量从es取数据的方法(文档数超过10000)
2018/12/27 Python
python网络编程之多线程同时接受和发送
2019/09/03 Python
Python Gluon参数和模块命名操作教程
2019/12/18 Python
详解HTML5中CSS外观属性
2020/09/10 HTML / CSS
英国最大的割草机购买网站:Just Lawnmowers
2019/11/02 全球购物
PHP面试题大全
2015/10/16 面试题
《十六年前的回忆》教学反思
2014/02/14 职场文书
企业诚信承诺书
2014/05/23 职场文书
工作骂脏话检讨书
2014/10/05 职场文书
Python按顺序遍历并读取文件夹中文件
2022/04/29 Python