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日志配置

Django中Logging日志配置

Django logging日志模块详解(日志记录模板配置)

如何使用 Django 1.3 日志字典配置设置 SysLogHandler

Django - Celery - supervisord 日志配置

Django日志配置代码