当前位置: 首页 > article >正文

Django 日志配置实战指南

日志是 Django 项目中不可或缺的一部分,它帮助我们记录应用程序的运行状态、调试信息、错误信息等。通过合理配置日志,我们可以更好地监控和调试应用程序。本文将详细介绍如何在 Django 项目中实现日志文件分割、日志级别控制以及多环境日志配置,并结合最佳实践和代码示例,帮助你全面掌握 Django 日志的使用。


1. 日志级别概述

Python 的日志模块定义了以下日志级别(从低到高):

  1. DEBUG:详细的调试信息,通常用于开发阶段。
  2. INFO:程序正常运行时的信息,例如请求处理成功。
  3. WARNING:潜在的问题,例如资源不足。
  4. ERROR:严重的错误,例如数据库连接失败。
  5. CRITICAL:致命的错误,可能导致程序崩溃。

日志级别的作用是过滤日志信息。例如,如果将日志级别设置为 WARNING,则只有 WARNINGERRORCRITICAL 级别的日志会被记录。


© ivwdcwso (ID: u012172506)

2. 日志配置详解

settings.py 是 Django 项目的配置文件,用于定义项目的全局设置,包括数据库配置、静态文件路径、中间件、日志配置等。以下是一个完整的日志配置示例,结合了文件分割、日志级别控制和多环境支持:

# settings.py
import os
from datetime import datetime
from pathlib import Path

# 日志目录
BASE_DIR = Path(__file__).resolve().parent.parent
LOG_DIR = os.path.join(BASE_DIR, "logs")
os.makedirs(LOG_DIR, exist_ok=True)

# 日志配置
LOGGING = {
   
    "version": 1,
    "disable_existing_loggers": False,
    "formatters": {
   
        "verbose": {
   
            "format": "%(asctime)s | %(levelname)s | %(filename)s:%(lineno)d | %(funcName)s | %(process)d | %(thread)d | %(message)s",
            "datefmt": "%Y-%m-%d %H:%M:%S",
        },
        "simple": {
   
            "format": "%(asctime)s | %(levelname)s | %(filename)s:%(lineno)d | %(message)s",
            "datefmt": "%Y-%m-%d %H:%M:%S",
        },
    },
    "handlers": {
   
        "file": {
   
            "level": "INFO",
            "class": "logging.handlers.TimedRotatingFileHandler",
            "filename": os.path.join(LOG_DIR, f"app-

http://www.kler.cn/a/516281.html

相关文章:

  • HTML根元素<html>的语言属性lang:<html lang=“en“>
  • 简洁实用的wordpress外贸模板
  • 数据缺失补全方法综述
  • C语言初阶牛客网刷题——HJ73 计算日期到天数转换【难度:简单】
  • 深入探究 YOLOv5:从优势到模型导出全方位解析
  • docker 部署confluence
  • .NET 9 微软官方推荐使用 Scalar 替代传统的 Swagger
  • 【项目初始化】自定义异常处理
  • 终极的复杂,是简单
  • PVE 虚拟机安装 Debian 无图形化界面服务器
  • 【后端开发】字节跳动青训营之Go语言进阶与依赖管理
  • Elementor Pro 3.27 汉化版 2100套模板 安装教程 wordpress主题中文编辑器插件免费下载
  • 缓存-Redis-数据结构-redis哪些数据结构是跳表实现的?
  • Node.js的解释
  • Charles 4.6.7 浏览器网络调试指南:基本界面与操作(二)
  • Vue 全局自适应大小:使用 postcss-pxtorem
  • [MySQL]数据类型以及表的属性与操作大全
  • linux虚拟机连接不上Xshell
  • NLP自然语言处理中Word2Vec和GloVe概述
  • 豆瓣Top250电影的数据采集与可视化分析(scrapy+mysql+matplotlib)
  • MongoDB 数据库备份和恢复全攻略
  • cesium相机
  • Flutter接django后台文件通道
  • Tensor 基本操作4 理解 indexing,加减乘除和 broadcasting 运算 | PyTorch 深度学习实战
  • 【人工智能】深度卷积神经网络学习
  • 【数据库】详解MySQL数据库中索引的本质与底层原理