Django 日志配置
Posted evescn
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django 日志配置相关的知识,希望对你有一定的参考价值。
Django 日志配置
Django 项目日志配置
记录业务运行过程中的一些关键信息,方便查看程序运行情况以及排查报错等
详细日志配置
settings.py
配置文件中新增 日志配置
# 设置时区,日志输出时间为 utc-8 时区
# TIME_ZONE = \'UTC\'
TIME_ZONE = \'Asia/Shanghai\'
# 日志配置
LOGGING =
\'version\': 1,
\'disable_existing_loggers\': False,
\'handlers\':
\'file\':
\'level\': \'DEBUG\',
\'class\': \'logging.handlers.TimedRotatingFileHandler\',
\'filename\': \'./log/access.log\',
\'when\': \'midnight\', # 每天切割日志
\'interval\': 1, # 切割时间间隔为1天
\'backupCount\': 7, # 保留7天日志
\'formatter\': \'custom\',
,
,
\'formatters\':
\'custom\':
# 日志输出不够详细,搜索 format 配置后修改下面的配置
\'format\': \'[%(asctime)s] [%(levelname)s]: %(message)s\',
,
,
\'loggers\':
\'app\':
\'handlers\': [\'file\'],
\'level\': \'DEBUG\',
\'propagate\': True,
,
,
文件中调用
import logging
# 获取日志器对象
logger = logging.getLogger(\'app\')
def xxx(request):
logger.info("Test 数据")
添加中间件,日志记录接口请求 url
信息
middleware.py
文件
import logging
class RequestLoggingMiddleware:
def __init__(self, get_response):
self.get_response = get_response
self.logger = logging.getLogger(\'app\') # 替换为实际的日志器名称
def __call__(self, request):
self.logger.info(f\'[request.method] request.path request.META["SERVER_PROTOCOL"]\')
response = self.get_response(request)
return response
setting.py
文件注册中间件
MIDDLEWARE = [
......
\'app.middleware.RequestLoggingMiddleware\',
]
日志实例
[2023-06-17 10:53:21,470] [INFO]: [POST] /api/alert HTTP/1.1
[2023-06-17 10:53:21,471] [INFO]: <QueryDict: \'domain\': [\'cat\'], \'email\': [\'企业微信机器人\'], \'title\': [\'[CAT Transaction告警] [项目: cat] [监控项: URL-All-count]\'], \'content\': [\'[CAT Transaction告警: cat URL All] : [实际值:164 ] [最大阈值: 100 ][告警时间:2023-06-17 10:53:21]\\n[时间: 2023-06-17 10:53] \\n\\n\\n[告警间隔时间]5分钟\'], \'type\': [\'Transaction\']>
[2023-06-17 10:53:21,471] [INFO]:
# Cat监控告警信息
> <font color="warning">告警类型</font>:CAT Transaction告警
> <font color="warning">告警项目</font>:cat
> <font color="warning">监控项目</font>:URL-All-count
> <font color="warning">告警内容</font>:最大阈值: 100, 实际值: 164
> <font color="warning">告警时间</font>:2023-06-17 10:53:21
> <font color="warning">告警间隔时间</font>:5分钟
[2023-06-17 10:53:21,808] [INFO]: 告警发送完成
以上是关于Django 日志配置的主要内容,如果未能解决你的问题,请参考以下文章
Django logging日志模块详解(日志记录模板配置)
如何使用 Django 1.3 日志字典配置设置 SysLogHandler