如何在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发送伪造的arp请求
Jan 09 Python
Python获取邮件地址的方法
Jul 10 Python
Python如何发布程序的详细教程
Oct 09 Python
python消费kafka数据批量插入到es的方法
Dec 27 Python
浅谈Python 多进程默认不能共享全局变量的问题
Jan 11 Python
Python实现 版本号对比功能的实例代码
Apr 18 Python
python requests模拟登陆github的实现方法
Dec 26 Python
TensorFlow tf.nn.conv2d实现卷积的方式
Jan 03 Python
Python获取、格式化当前时间日期的方法
Feb 10 Python
Python实现的北京积分落户数据分析示例
Mar 27 Python
python爬虫学习笔记之pyquery模块基本用法详解
Apr 09 Python
python爬取微博评论的实例讲解
Jan 15 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
配置Apache2.2+PHP5+CakePHP1.2+MySQL5运行环境
2009/04/25 PHP
PHP中的按位与和按位或操作示例
2014/01/27 PHP
php判断表是否存在的方法
2015/06/18 PHP
PHP实现图片上传并压缩
2015/12/22 PHP
Yii多表联合查询操作详解
2016/06/02 PHP
jcarousellite.js 基于Jquery的图片无缝滚动插件
2010/12/30 Javascript
jquery中event对象属性与方法小结
2013/12/18 Javascript
用JavaScript实现使用鼠标画线的示例代码
2014/08/19 Javascript
JavaScript常用脚本汇总(二)
2015/03/04 Javascript
根据输入邮箱号跳转到相应登录地址的解决方法
2016/12/13 Javascript
如何利用JQuery实现从底部回到顶部的功能
2016/12/27 Javascript
浅谈vue的iview列表table render函数设置DOM属性值的方法
2017/09/30 Javascript
bootstrap中selectpicker下拉框使用方法实例
2018/03/22 Javascript
JavaScript基于对象方法实现数组去重及排序操作示例
2018/07/10 Javascript
vuejs2.0运用原生js实现简单拖拽元素功能
2020/08/21 Javascript
Electron 如何调用本地模块的方法
2019/02/01 Javascript
fastadmin中调用js的方法
2019/05/14 Javascript
centos 下面安装python2.7 +pip +mysqld
2014/11/18 Python
python中的编码知识整理汇总
2016/01/26 Python
Python结巴中文分词工具使用过程中遇到的问题及解决方法
2017/04/15 Python
Apache如何部署django项目
2017/05/21 Python
tensorflow实现逻辑回归模型
2018/09/08 Python
Django+Xadmin构建项目的方法步骤
2019/03/06 Python
使用Windows批处理和WMI设置Python的环境变量方法
2019/08/14 Python
python 已知平行四边形三个点,求第四个点的案例
2020/04/12 Python
解决Django响应JsonResponse返回json格式数据报错问题
2020/08/09 Python
Booking.com荷兰:全球酒店网上预订
2017/08/22 全球购物
Bodum官网:咖啡和茶壶、玻璃器皿、厨房电器等
2018/08/01 全球购物
售后服务承诺书模板
2014/05/21 职场文书
工作求职自荐信
2014/06/13 职场文书
诚实守信演讲稿
2014/09/01 职场文书
2015个人简历自我评价语
2015/03/11 职场文书
开学典礼观后感
2015/06/15 职场文书
交通事故协议书范本
2016/03/19 职场文书
Python socket如何解析HTTP请求内容
2022/02/12 Python
html中两种获取标签内的值的方法
2022/06/10 HTML / CSS