如何在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 re正则表达式模块(Regular Expression)
Jul 16 Python
Python中type的构造函数参数含义说明
Jun 21 Python
python简单实现操作Mysql数据库
Jan 29 Python
TensorFlow实现非线性支持向量机的实现方法
Apr 28 Python
使用pandas批量处理矢量化字符串的实例讲解
Jul 10 Python
Python BS4库的安装与使用详解
Aug 08 Python
python中利用numpy.array()实现俩个数值列表的对应相加方法
Aug 26 Python
Python字符串大小写转换拼接删除空白
Sep 19 Python
使用Django搭建一个基金模拟交易系统教程
Nov 18 Python
Django 返回json数据的实现示例
Mar 05 Python
浅析python函数式编程
Sep 26 Python
Python 批量下载阴阳师网站壁纸
May 19 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
在windows iis5下安装php4.0+mysql之我见
2006/10/09 PHP
PHP基础学习小结
2011/04/17 PHP
php基础教程 php内置函数实例教程
2012/08/21 PHP
set_exception_handler函数在ThinkPHP中的用法
2014/10/31 PHP
laravel框架关于搜索功能的实现
2018/03/15 PHP
PHP 对象继承原理与简单用法示例
2020/04/21 PHP
extJs 下拉框联动实现代码
2010/04/09 Javascript
关于JS判断图片是否加载完成且获取图片宽度的方法
2013/04/09 Javascript
js算法中的排序、数组去重详细概述
2013/10/14 Javascript
关闭浏览器输入框自动补齐 兼容IE,FF,Chrome等主流浏览器
2014/02/11 Javascript
Javascript中数组方法汇总(推荐)
2015/04/01 Javascript
javascript格式化指定日期对象的方法
2015/04/21 Javascript
jQuery简单实现iframe的高度根据页面内容自适应的方法
2016/08/01 Javascript
javascript ASCII和Hex互转的实现方法
2016/12/27 Javascript
详解node中创建服务进程
2017/05/09 Javascript
解决js ajax同步请求造成浏览器假死的问题
2018/01/18 Javascript
Node.JS段点续传:Nginx配置文件分段下载功能的实现方法
2018/03/12 Javascript
浅谈如何使用webpack构建多页面应用
2018/05/30 Javascript
快速解决Vue、element-ui的resetFields()方法重置表单无效的问题
2020/08/12 Javascript
通过实例解析js可枚举属性与不可枚举属性
2020/12/02 Javascript
python算法学习之计数排序实例
2013/12/18 Python
Python minidom模块用法示例【DOM写入和解析XML】
2019/03/25 Python
使用Python中的reduce()函数求积的实例
2019/06/28 Python
Python 文件操作之读取文件(read),文件指针与写入文件(write),文件打开方式示例
2019/09/29 Python
jupyter实现重新加载模块
2020/04/16 Python
基于Python脚本实现邮件报警功能
2020/05/20 Python
Spark处理数据排序问题如何避免OOM
2020/05/21 Python
团队精神演讲稿
2013/12/31 职场文书
学前班评语大全
2014/05/04 职场文书
师德师风建设整改措施思想汇报
2014/10/11 职场文书
检讨书范文
2015/01/27 职场文书
2015年办公室文秘工作总结
2015/04/30 职场文书
学生检讨书怎么写
2015/05/07 职场文书
驳回起诉民事裁定书
2015/05/19 职场文书
PHP基本语法
2021/03/31 PHP
python元组打包和解包过程详解
2021/08/02 Python