如何在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编程实现的简单神经网络算法示例
Jan 26 Python
python3使用smtplib实现发送邮件功能
May 22 Python
python 实现将字典dict、列表list中的中文正常显示方法
Jul 06 Python
python使用BeautifulSoup与正则表达式爬取时光网不同地区top100电影并对比
Apr 15 Python
Python对Excel按列值筛选并拆分表格到多个文件的代码
Nov 05 Python
Python 基于wxpy库实现微信添加好友功能(简洁)
Nov 29 Python
python生成任意频率正弦波方式
Feb 25 Python
python如何判断IP地址合法性
Apr 05 Python
使用Python操作MySQL的小技巧
Sep 10 Python
python数据分析之用sklearn预测糖尿病
Apr 22 Python
移除Selenium中window.navigator.webdriver值
Jun 10 Python
python如何利用cv2.rectangle()绘制矩形框
Dec 24 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系列学习之日期函数使用介绍
2012/08/18 PHP
使用ThinkPHP生成缩略图及显示
2017/04/27 PHP
js 未结束的字符串常量错误解决方法
2010/06/13 Javascript
jquery操作checkbox实现全选和取消全选
2014/05/02 Javascript
详谈nodejs异步编程
2014/12/04 NodeJs
基于jQuery.Hz2Py.js插件实现的汉字转拼音特效
2015/05/07 Javascript
深入解析JavaScript编程中的this关键字使用
2015/11/09 Javascript
JS插件overlib用法实例详解
2015/12/26 Javascript
javascript回到顶部特效
2016/07/30 Javascript
jQuery基于排序功能实现上移、下移的方法
2016/11/26 Javascript
vue生成随机验证码的示例代码
2017/09/29 Javascript
Vue封装的可编辑表格插件方法
2018/08/28 Javascript
如何在Angular应用中创建包含组件方法示例
2019/03/23 Javascript
js图数据结构处理 迪杰斯特拉算法代码实例
2019/09/11 Javascript
node.js域名解析实现方法详解
2019/11/05 Javascript
taro小程序添加骨架屏的实现代码
2019/11/15 Javascript
[04:46]2018年度玩家喜爱的电竞媒体-完美盛典
2018/12/16 DOTA
Python操作列表的常用方法分享
2014/02/13 Python
使用python实现tcp自动重连
2017/07/02 Python
Python 读取指定文件夹下的所有图像方法
2018/04/27 Python
Python实现的连接mssql数据库操作示例
2018/08/17 Python
用pycharm开发django项目示例代码
2018/10/24 Python
解决Mac下首次安装pycharm无project interpreter的问题
2018/10/29 Python
pygame游戏之旅 计算游戏中躲过的障碍数量
2018/11/20 Python
python sorted函数的小练习及解答
2019/09/18 Python
pycharm安装及如何导入numpy
2020/04/03 Python
经验丰富程序员才知道的8种高级Python技巧
2020/07/27 Python
CSS3悬停效果案例应用
2012/11/21 HTML / CSS
美国婚戒购物网站:Anjays Designs
2017/06/28 全球购物
3D空间设计学生找工作的自我评价
2013/10/28 职场文书
会计找工作求职信范文
2013/12/09 职场文书
小学教师节活动方案
2014/01/31 职场文书
图书馆志愿者活动总结
2014/06/27 职场文书
汽车检测与维修专业求职信
2014/07/04 职场文书
手术室护士节演讲稿
2014/08/27 职场文书
2016年暑期见闻作文
2015/11/25 职场文书