1,在项目下建个文件夹    log

2,在django的setting的配置下添加路径     BASE_LOG_DIR = os.path.join(BASE_DIR, "log")

LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'standard': {
'format': '[%(asctime)s][%(threadName)s:%(thread)d][task_id:%(name)s][%(filename)s:%(lineno)d]'
'[%(levelname)s][%(message)s]'
},
'simple': {
'format': '[%(levelname)s][%(asctime)s][%(filename)s:%(lineno)d]%(message)s'
},
'collect': {
'format': '%(message)s'
}
},
'filters': {
'require_debug_true': {
'()': 'django.utils.log.RequireDebugTrue',
},
},
'handlers': {
'console': {
'level': 'DEBUG',
'filters': ['require_debug_true'], # 只有在Django debug为True时才在屏幕打印日志
'class': 'logging.StreamHandler',
'formatter': 'simple'
},
'default': {
'level': 'INFO',
'class': 'logging.handlers.RotatingFileHandler', # 保存到文件,自动切
'filename': os.path.join(BASE_LOG_DIR, "info.log"), # 日志文件
'maxBytes': 1024 * 1024 * 500, # 日志大小 500M
'backupCount': 3,
'formatter': 'standard',
'encoding': 'utf-8',
},
'error': {
'level': 'ERROR',
'class': 'logging.handlers.RotatingFileHandler', # 保存到文件,自动切
'filename': os.path.join(BASE_LOG_DIR, "err.log"), # 日志文件
'maxBytes': 1024 * 1024 * 500, # 日志大小 500M
'backupCount': 5,
'formatter': 'standard',
'encoding': 'utf-8',
},
'collect': {
'level': 'INFO',
'class': 'logging.handlers.RotatingFileHandler', # 保存到文件,自动切
'filename': os.path.join(BASE_LOG_DIR, "collect.log"),
'maxBytes': 1024 * 1024 * 500, # 日志大小 500M
'backupCount': 5,
'formatter': 'collect',
'encoding': "utf-8"
}
},
'loggers': {
# 默认的logger应用如下配置
'': {
'handlers': ['default', 'console', 'error'], # 上线之后可以把'console'移除
'level': 'DEBUG',
'propagate': True,
},
# 名为 'collect'的logger还单独处理
'collect': {
'handlers': ['console', 'collect'],
'level': 'INFO',
}
},
}

3,如何引用:

在当前文件下 :

import logging

# 生成一个以当前文件名为名字的 logger实例
logger = logging.getLogger(__name__)
# 生成一个名字为collect的日志实例
collect_logger = logging.getLogger('collect')
logger.warning() warning级别
collect_logger.info() info级别
logger.debug() debug级别
logger.info() info级别
 

最新文章

  1. Sqlserver 函数
  2. 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式
  3. 敲-PHP与MySQL,JSON
  4. Ibatis 测试出SQL
  5. jsp MVC学习笔记
  6. BZOJ1996 合唱队 区间DP
  7. 全国OA系统下载地址(全)
  8. 子类化窗口控件的窗口过程(系统级替换,与直接替换控件的WndProc方法不是一回事)
  9. Delphi 缩放图像代码 - 支持PNG透明通道(利用了Windows的windowscodecs.dll)
  10. STL中的find_if函数
  11. 修改spfile导致oracle无法启动
  12. 读取Zip文件内容
  13. 图片拉伸iOS
  14. php面试题汇总二(基础篇附答案)
  15. how to select checkbox on cli environment?
  16. 连接Redis后执行命令错误 MISCONF Redis is configured to save RDB snapshots
  17. SpringCloud Config服务端
  18. 【Java基础】【19异常&IO(File类)】
  19. 快速简单搭建wordpress平台
  20. 2050 Programming Competition (CCPC)

热门文章

  1. 报错:[Vue warn]: Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead, use a data or computed property based on the prop's value. Prop bei
  2. 014_浅说 XSS和CSRF
  3. ubuntu下安装飞鸽传书
  4. python小白——进阶之路——day3天-———运算符
  5. PS快速秒抠图技巧
  6. 13点值得我们注意的谷歌的JavaScript编写风格
  7. VUE浏览器储存封装
  8. 数据降维之多维缩放MDS(Multiple Dimensional Scaling)
  9. Spring MVC 使用介绍(四)—— 拦截器
  10. TP5.x——多数据库连接查询