django_logging

本文详细介绍Django项目中如何使用Python内置logging模块进行日志配置。从Logger、Handler、Filter到Formatter,全面解析日志系统的各个组件及其作用。通过具体示例,展示如何设置日志级别、日志格式及日志文件的自动切割,帮助开发者更好地理解和运用日志管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

django使用python自带的logging打印日志

logging 是线程安全的,其主要由4部分组成:

Logger 
用户使用的直接接口,将日志传递给Handler
Handler 
控制日志输出到哪里,console,file… 
一个logger可以有多个Handler
Filter 
控制哪些日志可以从logger流向Handler
Formatter 
控制日志的格式

 

BASE_LOG_DIR = os.path.join(BASE_DIR, "log")
LOGGING = {
    'version': 1,  # 保留字
    'disable_existing_loggers': False,  # 禁用已经存在的logger实例
    # 日志文件的格式
    'formatters': {
        # 详细的日志格式
        'standard': {
            'format': '[%(asctime)s][%(pathname)s %(module)s:%(lineno)d][%(levelname)s][%(message)s]'
        },
        # 简单的日志格式
        'simple': {
            'format': '[%(levelname)s][%(asctime)s][%(filename)s:%(lineno)d]%(message)s'
        },
    },
    # 过滤器
    'filters': {
        'require_debug_true': {
            '()': 'django.utils.log.RequireDebugTrue',
        },
    },
    # 处理器
    'handlers': {
        # 默认的
        'default': {
            'level': 'DEBUG',
            'class': 'logging.handlers.RotatingFileHandler',  # 保存到文件,自动切
            'filename': os.path.join(BASE_LOG_DIR, "cms.log"),  # 日志文件
            'maxBytes': 1024 * 1024 * 50,  # 日志大小 50M
            'backupCount': 3,  # 最多备份几个
            'formatter': 'standard',
            'encoding': 'utf-8',
        },
    },
    'loggers': {
       # 默认的logger应用如下配置
        '': {
            'handlers': ['default',],  # 上线之后可以把'console'移除
            'level': 'DEBUG',
            'propagate': True,  # 向不向更高级别的logger传递
        },
    },
}
#在setting里定义log配置

  

import logging
logger = logging.getLogger('default')

logger.info('url:%s method:%s'% (request.path, request.method))


#在业务代码中创建default handlers的实例
#使用info级别输出日志

  

[2019-03-15 10:03:51,033][E:\Python\cms\deploy\views.py views:27][INFO][url:/deploy/room_addconfig/ method:POST]
#实际的日志输出

  

  

转载于:https://www.cnblogs.com/jabbok/p/10535418.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值