Django系列之日志配置

如何配置

settings.py 文件中增加如下日志模块

python 复制代码
"""logger 配置"""
LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,  # 是否去掉目前项目中其他地方中以及使用的日志功能,但是将来我们可能会引入第三方的模块,里面可能内置了日志功能,所以尽量不要关闭。
    'formatters': {
        'verbose': {
            'format': '{asctime} {levelname} PID:{process:d} TID:{thread:d} {filename} line:{lineno} {funcName} {message}',
            'style': '{',
        },
        'simple': {
            'format': '{asctime} {levelname} {filename} {lineno} {message}',
            'style': '{',
        },
    },
    'filters': {
        'require_debug_false': {
            '()': 'django.utils.log.RequireDebugFalse',
        },
        'require_debug_true': {
            '()': 'django.utils.log.RequireDebugTrue',
        },
    },
    'handlers': {
        'console': {
            'level': 'INFO',
            'filters': ['require_debug_true'],
            'class': 'logging.StreamHandler',
            'formatter': 'simple'
        },
        'file': {
            'level': 'INFO',
            'class': 'logging.handlers.RotatingFileHandler',
            'filename': os.path.join(BASE_DIR, "application.log"),  # 注意,你的文件应该有读写权限。
            'maxBytes': 300 * 1024 * 1024,  # 日志文件的最大值,这里我们设置300M
            'backupCount': 10,      # 日志文件的数量,设置最大日志数量为10
            'formatter': 'verbose',   # 日志格式:详细格式
            'encoding': 'utf-8',  # 设置默认编码,否则打印出来汉字乱码
        },
        'mail_admins': {
            'level': 'ERROR',
            'class': 'django.utils.log.AdminEmailHandler',
            'filters': ['require_debug_false']
        }
    },
    'loggers': {
        'django': {
            'handlers': ['console'],
            'propagate': True,
        },
        'django.request': {
            'handlers': ['mail_admins'],
            'level': 'ERROR',
            'propagate': True,
        },
        'application': {
            'handlers': ['console', 'file'],
            'level': 'INFO',
            'filters': ['require_debug_true']
        }
    }
}

如何调用

python 复制代码
import logging
logger = logging.getLogger("application")

logger.info("......")
相关推荐
不想写bug呀14 小时前
MySQL事务介绍
数据库·mysql
m0_7369191015 小时前
实战:用Python分析某电商销售数据
jvm·数据库·python
cheems952715 小时前
【MySQL】SQL调优:数据库性能优化(一)
数据库·sql·mysql
Rysxt_15 小时前
分布式数据库模式结构完整教程
数据库·分布式
远方160915 小时前
113-Oracle database26ai rpm安装和适配生产
大数据·数据库·sql·oracle·database
MMMMMMMMMMemory15 小时前
社区版oceanbase报警XA事务悬挂
数据库·oceanbase
OceanBase数据库官方博客15 小时前
APQO自适应参数化查询优化框架——OceanBase 校企联合研究成果
数据库·oceanbase·分布式数据库
Aloudata15 小时前
破解监管溯源难题:从表级血缘到算子级血缘的数据治理升级
数据库·数据挖掘·数据治理·元数据·数据血缘
OceanBase数据库官方博客15 小时前
中国联通软研院基于OceanBase引领运营商数智化转型新范式
数据库·oceanbase·分布式数据库
qq_2975746715 小时前
MySQL迁移到瀚高数据库 常用转换函数对照表(附XML示例,直接复用)
xml·数据库·mysql