Django自带日志 settings.py文件配置方法


Posted in Python onAugust 30, 2019

Django settings.py文件配置部分:

# logging配置
log_file = '/home/nagain/learn/log'
log_file_path = os.path.join(log_file, 'all.log')
if not os.path.exists(log_file):
 os.mkdir(log_file)
 os.mknod(log_file_path) # 创建空文件
 
LOGGING = {
 'version': 1,
 'disable_existing_loggers': True,
 'formatters': {
  # 日志格式
  'standard': {
   'format': '%(asctime)s [%(threadName)s:%(thread)d] [%(name)s:%(lineno)d] '
      '[%(module)s:%(funcName)s] [%(levelname)s]- %(message)s'
  }
 },
 'filter': {
 
 },
 'handlers': {
  'mail_admins': {
   'level': 'ERROR',
   'class': 'django.utils.log.AdminEmailHandler',
   'include_html': True,
  },
  'default': {
     'level': 'DEBUG',
     'class': 'logging.handlers.RotatingFileHandler',
     'filename': log_file_path,   # 日志输出文件
     'maxBytes': 1024*1024*5,     # 文件大小
     'backupCount': 5,       # 备份份数
     'formatter': 'standard',     #使用哪种formatters日志格式
  },
  'error': {
     'level': 'ERROR',
     'class': 'logging.handlers.RotatingFileHandler',
     'filename': log_file_path,
     'maxBytes': 1024*1024*5,
     'backupCount': 5,
     'formatter': 'standard',
    },
  'console': {
     'level': 'DEBUG',
     'class': 'logging.StreamHandler',
     'formatter': 'standard'
    },
  'request_handler': {
     'level': 'DEBUG',
     'class': 'logging.handlers.RotatingFileHandler',
     'filename': log_file_path,
     'maxBytes': 1024*1024*5,
     'backupCount': 5,
     'formatter': 'standard',
    },
  'scprits_handler': {
     'level': 'DEBUG',
     'class': 'logging.handlers.RotatingFileHandler',
     'filename': log_file_path,
     'maxBytes': 1024*1024*5,
     'backupCount': 5,
     'formatter': 'standard',
    }
 },
 'loggers': {
  'django': {
     'handlers': ['default', 'console'], # 来自上面定义的handlers内容
      'level': 'INFO',
     'propagate': False # 是否继承父类的log信息
  },
  'scripts': {
   'handlers': ['scprits_handler'],
   'level': 'INFO',
   'propagate': False
  },
  # sourceDns.webdns.views 应用的py文件
  'sourceDns.webdns.views': {
     'handlers': ['default', 'error'],
     'level': 'INFO',
     'propagate': True
  },
  'sourceDns.webdns.util': {
     'handlers': ['error'],
     'level': 'ERROR',
     'propagate': True
  },
  # 'django.request': {
  #    'handlers': ['mail_admins'],
  #    'level': 'ERROR',
  #    'propagate': False,
  #   },
 }
}

项目视图函数views.py使用实例:

# 日志
import logging
logger = logging.getLogger('sourceDns.webdns.views') # 获取settings.py配置文件中logger名称
def index(request):
 a = reverse('index:article')
 logger.info(a)
 return HttpResponseRedirect(a)

注意:错误日志记录级别level

级别 描述
CRITICAL 50 关键错误/消息
ERROR 40 错误
WARNING 30 警告消息
INFO 20 通知消息
DEBUG 10 调试
NOTSET 0 无级别

注意:记录器 handler

关键字参数 描述
filename 将日志消息附加到指定文件名的文件
filemode 指定用于打开文件模式
format 用于生成日志消息的格式字符串
datefmt 用于输出日期和时间的格式字符串
level 设置记录器的级别
stream 提供打开的文件,用于把日志消息发送到文件。

注意: format日志消息显示格式

格式 描述
%(name)s 记录器的名称
%(levelno)s 数字形式的日志记录级别
%(levelname)s 日志记录级别的文本名称
%(filename)s 执行日志记录调用的源文件的文件名称
%(pathname)s 执行日志记录调用的源文件的路径名称
%(funcName)s 执行日志记录调用的函数名称
%(module)s 执行日志记录调用的模块名称
%(lineno)s 执行日志记录调用的行号
%(created)s 执行日志记录的时间
%(asctime)s 日期和时间
%(msecs)s 毫秒部分
%(thread)d 线程ID
%(threadName)s 线程名称
%(process)d 进程ID
%(message)s 记录的消息

注意: 内置处理器

logging模块提供了一些处理器,可以通过各种方式处理日志消息。使用addHandler()方法将这些处理器添加给Logger对象。另外还可以为每个处理器配置它自己的筛选和级别。

handlers.DatagramHandler(host,port):发送日志消息给位于制定host和port上的UDP服务器。
 
handlers.FileHandler(filename):将日志消息写入文件filename。
 
handlers.HTTPHandler(host, url):使用HTTP的GET或POST方法将日志消息上传到一台HTTP 服务器。
 
handlers.RotatingFileHandler(filename):将日志消息写入文件filename。如果文件的大小超出maxBytes制定的值,那么它将被备份为filename1。

*****以上内容也是自己查询通过自己测试是可行的,如果想要了解更加详细,请自行查看神器(django官方文档)*****

这篇Django自带日志 settings.py文件配置方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python os模块中的isfile()和isdir()函数均返回false问题解决方法
Feb 04 Python
python实现向ppt文件里插入新幻灯片页面的方法
Apr 28 Python
21行Python代码实现拼写检查器
Jan 25 Python
python利用高阶函数实现剪枝函数
Mar 20 Python
详谈Python3 操作系统与路径 模块(os / os.path / pathlib)
Apr 26 Python
Flask框架信号用法实例分析
Jul 24 Python
使用python将时间转换为指定的格式方法
Nov 12 Python
对Python 语音识别框架详解
Dec 24 Python
Visual Studio code 配置Python开发环境
Sep 11 Python
Python更改pip镜像源的方法示例
Dec 01 Python
python 制作本地应用搜索工具
Feb 27 Python
pytorch交叉熵损失函数的weight参数的使用
May 24 Python
tensorflow如何批量读取图片
Aug 29 #Python
解决Django layui {{}}冲突的问题
Aug 29 #Python
Python Django实现layui风格+django分页功能的例子
Aug 29 #Python
在Django下测试与调试REST API的方法详解
Aug 29 #Python
阿里云ECS服务器部署django的方法
Aug 29 #Python
树莓派3 搭建 django 服务器的实例
Aug 29 #Python
使用Django搭建web服务器的例子(最最正确的方式)
Aug 29 #Python
You might like
检测png图片是否完整的php代码
2010/09/06 PHP
让PHP COOKIE立即生效,不用刷新就可以使用
2011/03/09 PHP
PHP培训要多少钱
2017/06/06 PHP
PHP如何防止XSS攻击与XSS攻击原理的讲解
2019/03/22 PHP
prototype1.4中文手册
2006/09/22 Javascript
用JAVASCRIPT如何给<textarea></textarea>赋值
2007/04/20 Javascript
12个非常有创意的JavaScript小游戏
2010/03/18 Javascript
JS 精确统计网站访问量的实例代码
2013/07/05 Javascript
利用JS实现浏览器的title闪烁
2013/07/08 Javascript
jQuery学习笔记之jQuery原型属性和方法
2014/06/09 Javascript
浅谈 vue 中的 watcher
2017/12/04 Javascript
微信小程序开发之tabbar图标和颜色的实现
2018/10/17 Javascript
[46:48]DOTA2上海特级锦标赛A组小组赛#2 Secret VS CDEC第三局
2016/02/25 DOTA
python比较2个xml内容的方法
2015/05/11 Python
通过python顺序修改文件名字的方法
2018/07/11 Python
python将一个英文语句以单词为单位逆序排放的方法
2018/12/20 Python
python f-string式格式化听语音流程讲解
2019/06/18 Python
对python 树状嵌套结构的实现思路详解
2019/08/09 Python
重写django的model下的objects模型管理器方式
2020/05/15 Python
基于SQLAlchemy实现操作MySQL并执行原生sql语句
2020/06/10 Python
python爬虫请求头设置代码
2020/07/28 Python
CSS3属性box-shadow使用详细教程
2012/01/21 HTML / CSS
以特惠价提供在线奢侈品购物:FRMODA.com
2018/01/25 全球购物
新西兰Bookabach:查找全球度假屋
2020/12/03 全球购物
我的applet原先好好的, 一放到web server就会有问题,为什么?
2016/05/10 面试题
大学四年规划书范文
2013/12/27 职场文书
骨干教师培训感言
2014/01/16 职场文书
留学推荐信写作指南
2014/01/25 职场文书
《盲人摸象》教学反思
2014/02/16 职场文书
《金钱的魔力》教学反思
2014/02/24 职场文书
初中学校军训方案
2014/05/09 职场文书
幼儿园师德师风学习材料
2014/05/29 职场文书
民主生活会对照检查材料思想汇报
2014/09/27 职场文书
2015年支教教师工作总结
2015/07/22 职场文书
广播稿:校园广播稿范文
2019/04/17 职场文书
Go遍历struct,map,slice的实现
2021/06/13 Golang