# https://docs.djangoproject.com/zh-hans/2.1/topics/logging/

LOGGING ={'version': 1,'disable_existing_loggers': False,'formatters': { # 格式器'verbose': {

# 后缀d表示数据格式是整数,s表示数据格式是字符串'format': '[%(levelname)s] [%(asctime)s] [%(module)s] %(filename)s:%(lineno)d %(funcName)s'

'%(processName)s:[%(process)d] %(threadName)s:[%(thread)d] %(message)s'#'format': '{levelname} {asctime} {module} {process:d} {thread:d} {message}',

#'style': '{',

},'simple': {'format': '[%(levelname)s] [%(asctime)s] %(message)s',

#'format': '[%(asctime)s] %(message)s',

# 后缀d表示数据格式是整数,s表示数据格式是字符串

#'format': '[%(levelname)s] [%(asctime)s] [%(module)s] %(filename)s:%(lineno)d %(funcName)s'#'%(processName)s:[%(process)d] %(threadName)s:[%(thread)d] %(message)s',

#'style': '{',

},'standard': {

#'format': '%(asctime)s [%(levelname)s] %(name)s: %(message)s','format': '{asctime} [{levelname:6}] {name:30}: {message}',

# 设置上面格式样式;{lineno:3}是行号,至少显示3个字符,少则补空格

# 这里style选择{,是指{asctime}这种形式。

# 如果选择%,则是%(asctime)s这种形式。

# 还有一种选择,是$,是$asctime或${asctime}这种形式。'style': '{',

# 设置时间格式'datefmt': '%Y-%m-%d %H:%M:%S',

},'operation': {'format': '%(message)s'}

},

#'filters': {

# #'special': {

# #'()': 'erebus.logging.SpecialFilter',

# #'foo': 'bar',

# # },

#'require_debug_true': {

#'()': 'django.utils.log.RequireDebugTrue',

# },

# },

# Handler是决定如何处理logger中每一条消息的引擎。它描述特定的日志行为,比如把消息输出到屏幕、文件或网络socket。

# 和 logger 一样,handler 也有日志级别的概念。如果一条日志记录的级别不匹配或者低于 handler 的日志级别,

# 对应的消息会被 handler 忽略。'handlers': { # 处理器'default': {'level': 'DEBUG','class': 'logging.handlers.RotatingFileHandler','filename': 'logs/default.log','maxBytes': 1024*1024*5*20, # 5*20MB

#'maxBytes': 1024*5, # 5KB

# 保留7天的日志,没份5M,5份大概是一个小时的日志内容,主要是kafka日志'backupCount': int(5*1*24*7/20),'formatter': 'standard',

},'kafka': {'level': 'DEBUG','class': 'logging.handlers.RotatingFileHandler','filename': 'logs/kafka.log','maxBytes': 1024*1024*5*20, # 5*20MB

#'maxBytes': 1024*5, # 5KB

# 保留7天的日志,没份5M,5份大概是一个小时的日志内容,主要是kafka日志'backupCount': int(5*1*24*7/20),'formatter': 'standard',

},'output_to_server': { # 输出到http server,参数来自类HTTPHandler初始化函数里的参数'level': 'WARNING', # 忽略debug/info信息'class': 'logging.handlers.HTTPHandler','host': '127.0.0.1:8088','url': '/api/v1/log',

# 使用GET方法遇到url最大长度限制'method': 'POST','formatter': 'verbose',

},'django': {'level': 'INFO', # 忽略debug信息'class': 'logging.FileHandler','filename': '{}/{}.log'.format(BASE_LOG_DIR, conf.get('log', 'name')),'formatter': 'simple' if DEBUG else 'verbose','encoding': 'utf8',

},'console': {'level': 'DEBUG', # 所有的日志都会被输出到console

#'filters': ['require_debug_true'],'class': 'logging.StreamHandler','formatter': 'simple'},'operation': {'level': 'INFO','class': 'logging.FileHandler','filename': '{}/{}.log'.format(BASE_LOG_DIR, 'operation'),'formatter': 'operation','encoding': 'utf8'},'test': {'level': 'INFO','class': 'logging.FileHandler','filename': '{}/{}.log'.format(BASE_LOG_DIR, 'test'),'formatter': 'standard','encoding': 'utf8'}

#'mail_admins': {

#'level': 'ERROR',

#'class': 'django.utils.log.AdminEmailHandler',

# #'filters': ['special']

# }

},'loggers': { # 记录器

# 可以通过使用空字符串:''来设置'catch all'logger

# 在以下设置中,将所有日志事件级别为WARNING及以上的日志发送给日志服务器,但配置为'propagate': False日志事件除外,'': {'handlers': ['default', 'output_to_server'],

# 这样情况下的level设置是无效的,所有级别的信息都会传给handlers处理,由handlers的level界别决定'level': 'ERROR','propagate': False

},

# 记录所有kakfa相关的日志'kafka': {'handlers': ['kafka'],'level': 'DEBUG','propagate': True

},

# 这里必须使用名字django和django.request,目的是为了捕获django框架的日志内容'django': {'handlers': ['django', 'console'],

# 当 logger 处理一条消息时,会将自己的日志级别和这条消息的日志级别做对比。

# 如果消息的日志级别匹配或者高于 logger 的日志级别,它就会被进一步处理。

# 否则这条消息就会被忽略掉。当 logger 确定了一条消息需要处理之后,会把它传给 Handler。

# 把INFO及以上级别的日志传给handlers,然后由handlers根据handlers的level进一步处理日志输出'level': 'INFO','propagate': True, # 若值为False,表示日志不会传到上个层级,自然也不会传到default.log里

},

# 使用logger= logging.getLogger('django.request'), logger.info('info'),

# 可以把日志输出到'handlers': ['django', 'console'],'django.request': {

# 即使和django的handlers一样,level也一样,也并不会产生2次相同的日志内容,应该是个并集。'handlers': ['django', 'console'],'level': 'DEBUG',

# 会把日志向django.request的上层django传播'propagate': True,

},

# sql语句'django.db.backends': {

# 即使和django的handlers一样,level也一样,也并不会产生2次相同的日志内容,应该是个并集。'handlers': ['django', 'console'],'level': 'DEBUG',

# 会把日志向django.request的上层django传播'propagate': True,

},

#'erebus.custom': {

#'handlers': ['console', 'mail_admins'],

#'level': 'INFO',

# #'filters': ['special']

# },

# 名字随意起,用时,使用logger= logging.getLogger(conf.get('log', 'name'))获取,传到相应的loggers里就可以'operation': {'handlers': ['operation'],'level': 'INFO','propagate': True,

},'test': {'handlers': ['console', 'test'],'level': 'INFO','propagate': False, # 不要传给上一层级

}

}

}

django http 收发_django的日志发往http server相关推荐

  1. Django项目工程配置工程日志

    Django项目工程配置工程日志​​​​​​​ Django项目工程配置工程日志 1.目的 2.原因 3.配置工程日志 3.1 在项目的配置文件任何位置添加 3.2 准备日志文件目录 4.日志记录器的 ...

  2. python django怎么读_django的英文读法是什么

    Django(发音:[`dʒæŋɡəʊ]) 是用python语言写的开源web开发框架(open source web framework),它鼓励快速开发,并遵循MVC设计.Django遵守BSD版 ...

  3. Maven项目之错误日志发邮件通知

    1.主要通过logback.xml配置,该文件位于src/main/resource目录下 <?xml version="1.0" encoding="UTF-8& ...

  4. 快速附加没有日志文件的 SQL Server 数据库文件!

    快速附加没有日志文件的 SQL Server 数据库文件: 1 CREATE DATABASE [数据库名称] 2 ON (FILENAME = '数据库文件路径和文件名(如:D:\db\mydb.m ...

  5. django 日志多个服务连接_Django多进程日志文件问题

    Django多进程日志文件问题 最近使用Django做一个项目.在部署的时候发现日志文件不能滚动(我使用的是RotatingFileHandler),只有一个日志文件. 查看Log发现一个错误消息:P ...

  6. python框架django的使用_Django框架的基本使用,若依框架

    Django框架的基本使用,若依框架 Django框架的基本使用 Django是一个功能强大的web框架 框架模式 1.MVC和MTV框架 MVC:Web服务器开发领域里著名的MVC模式,所谓MVC就 ...

  7. django url 生效_Django基础知识

    最近开始看Django框架,对我来说时间一长必定会忘记,所以还是做做笔记!学Django之前还看了点关于Web框架的原理什么的...杂七杂八!!! 0x00 关于Web服务 A. Web间的通信 We ...

  8. python 日志不会按照日期分割_django实现日志按日期分割

    settings文件中配置: LOGGING = { 'version':1, 'disable_existing_logger':False, 'formatters':{ 'verbose':{ ...

  9. nginx配置日志发送给syslog服务器

    需求描述 网站服务器用的nginx默认是把日志保存在本地的/var/log/nginx/access.log和/var/log/nginx/error.log, 想要同时输出给syslog日志服务器 ...

最新文章

  1. OpenFeign服务接口调用
  2. 女朋友求爱c语言程序,[转载]一个程序员写的求爱程序
  3. 教你从零开始使用wordpress做为后台生成小程序(小白版教程)
  4. 蓝桥杯练习系统习题-算法训练5
  5. Java并发编程之ConcurrentHashMap
  6. Burrow 服务的安装部署
  7. Python-IndexError: list index out of range
  8. Linux内存管理slub分配器
  9. 大家都在讲大数据,大数据是什么呢?
  10. 2022年4月30号Mysql语句增删改查(CRUB)重在实操。
  11. 计算机网络按拓扑结构可以划分为,计算机网络按拓扑结构分为哪些
  12. android wear自动断开,如果你的手表总是自动断开与手机连接的话,可以看下。
  13. MATLAB小技巧(30)非线性拟合 lsqcurefit
  14. SSD接口类型小知识
  15. 前端插件:雪碧图(多图压缩为一张)
  16. ssRender引擎
  17. 用你的浏览器来静态分析网站源码——初级漏洞赏金猎人指南
  18. 富文本编辑vue插件vue-quill-editor
  19. 利用数据与其他数据源
  20. Python 机器学习实战 —— 监督学习(下)

热门文章

  1. 【48期】盘点Netty面试常问考点:什么是 Netty 的零拷贝?
  2. excel怎么添加换行符_在Excel公式中添加换行符
  3. 如何修改别人的神经网络,人工神经网络通过调整
  4. 星起航:抖音小店适合去做吗
  5. ASO优化优缺点各是什么?带你学会常见的优化手段
  6. 苹果电脑和windows电脑怎么选择?开发应该用什么电脑?视频剪辑用什么电脑?电脑推荐
  7. selenium下对指定元素进行截图
  8. 2022年第三次面试,含泪整理万字面试题。
  9. Java强、软、弱、虚四大引用(附代码示例)
  10. 使用rufus制作Windows Server 2012 R2 U盘_wentfar·tsao