在settings中设置日志的相关信息,然后再逻辑代码区就可以保存相应的信息了

#简单设置:

LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'console':{
'level':'DEBUG',
'class':'logging.StreamHandler',
},
},
'loggers': {
'django.db.backends': {
'handlers': ['console'],
'propagate': True,
'level':'DEBUG',
},
}
}

#下面是稍微详细一点的配置,可以直接在以后的项目中引用。

# 定义一下log文件存放的位置
BASE_LOG_DIR = os.path.join(BASE_DIR, "log")
# Django项目日志配置
LOGGING = {
# 固定搭配的一个版本号
'version': 1,
# 禁用已经存在的logger实例
'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': '[%(asctime)s]%(message)s'
}
},
# 日志的过滤条件
'filters': {
# 需要debug=True
'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, "s8_info.log"), # 日志文件
'maxBytes': 1024 * 1024 * 50, # 日志大小 50M
'backupCount': 5, # 日志文件个数
'formatter': 'standard',
'encoding': 'utf-8',
},
# 专门记录错误日志的
'error': {
'level': 'ERROR',
'class': 'logging.handlers.RotatingFileHandler', # 保存到文件,自动切
'filename': os.path.join(BASE_LOG_DIR, "s8_err.log"), # 日志文件
'maxBytes': 1024 * 1024 * 50, # 日志大小 50M
'backupCount': 5,
'formatter': 'standard',
'encoding': 'utf-8',
},
'collect': {
'level': 'INFO',
'class': 'logging.handlers.RotatingFileHandler', # 保存到文件,自动切
'filename': os.path.join(BASE_LOG_DIR, "s8_collect.log"),
'maxBytes': 1024 * 1024 * 50, # 日志大小 50M
'backupCount': 5,
'formatter': 'collect',
'encoding': "utf-8"
}
},
# 最后处理logger实例的配置
'loggers': {
# 默认的logger应用如下配置
'': {
'handlers': ['default', 'console', 'error'], # 上线之后可以把'console'移除
'level': 'DEBUG', },
# 名为 'collect'的logger还单独处理
'collect': {
'handlers': ['console', 'collect'],
'level': 'INFO',
},
'collect.son': {
'handlers': ['console',],
'level': 'INFO',
'propagate': False,
}
},
}

最新文章

  1. maven/gradle 打包后自动上传到nexus仓库
  2. PHP webservice的使用
  3. C/ C++ 常见编程问题
  4. 【PL/SQL练习】命名块: 存储过程、函数、触发器、包
  5. linux 操作
  6. opencv绘制灰度直方图
  7. 浅析Java中HashMap的实现
  8. simplest_dll 最简dll的创建与隐式调用(显式调用太麻烦,个人不建议使用)
  9. 基于Qt的图像采集系统
  10. 边框圆角化方式(原文链接http://www.cnblogs.com/SJP666/p/4678730.html)
  11. 基于内容的图片检索CBIR(Content Based Image Retrieval)简介
  12. LAMP第四部分mysql操作
  13. 项目中的导出(jxl插件)
  14. asp.net mvc 5 关闭xss过滤
  15. Mybaits-plus实战(三)
  16. 20.C# 创建自己的泛型类型
  17. 二、主流区块链技术特点及Hyperledger Fabric V0.6版本特点
  18. pycharm中conda环境部署
  19. MySQL 8.0有什么新功能
  20. mongodb常见管理命令

热门文章

  1. 【HTML5】summary交互元素
  2. Mysql:使用workbeanch导出数据库
  3. Volatile 多线程中用到的关键字
  4. 【转】 IntelliJ IDEA 详细图解最常用的配置 ,适合刚刚用的新人
  5. ylb:使用sql语句实现添加、删除约束
  6. java清除所有微博短链接 Java问题通用解决代码
  7. C# 接口的隐式与显示实现说明
  8. ubuntu 14.04 anaconda安装
  9. 【POJ 2400】 Supervisor, Supervisee(KM求最小权匹配)
  10. Unity动态字体在手机上出现字体丢失问题解决