Django logging配置
2024-10-13 03:08:49
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级别
最新文章
- Sqlserver 函数
- 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式
- 敲-PHP与MySQL,JSON
- Ibatis 测试出SQL
- jsp MVC学习笔记
- BZOJ1996 合唱队 区间DP
- 全国OA系统下载地址(全)
- 子类化窗口控件的窗口过程(系统级替换,与直接替换控件的WndProc方法不是一回事)
- Delphi 缩放图像代码 - 支持PNG透明通道(利用了Windows的windowscodecs.dll)
- STL中的find_if函数
- 修改spfile导致oracle无法启动
- 读取Zip文件内容
- 图片拉伸iOS
- php面试题汇总二(基础篇附答案)
- how to select checkbox on cli environment?
- 连接Redis后执行命令错误 MISCONF Redis is configured to save RDB snapshots
- SpringCloud Config服务端
- 【Java基础】【19异常&;IO(File类)】
- 快速简单搭建wordpress平台
- 2050 Programming Competition (CCPC)
热门文章
- 报错:[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
- 014_浅说 XSS和CSRF
- ubuntu下安装飞鸽传书
- python小白——进阶之路——day3天-———运算符
- PS快速秒抠图技巧
- 13点值得我们注意的谷歌的JavaScript编写风格
- VUE浏览器储存封装
- 数据降维之多维缩放MDS(Multiple Dimensional Scaling)
- Spring MVC 使用介绍(四)—— 拦截器
- TP5.x——多数据库连接查询