Python的logging模块在Django中的应用

本文介绍了在Django项目中实现自定义日志配置的方法,包括如何为不同应用创建独立的logger,解决日志配置文件的加载问题,并将日志输出至标准输出和错误输出。

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

背景

项目需要把与知乎api对接时候返回不成功的信息记录下来,以及系统中所有try……catch……的地方都记录下来。

技术要点

django的日志模块基本就是把python的logging模块封装了下,有三个基本的logger (django, django.request, py.warning).显然用起来不方便,需要自己构建custom logging config.
参考了webforefront的这篇文章,我用每个app的名字建立一个logger,然后系统管理只让我打印到标准输出和标准错误输出,所以基本的handler就使用logging.StreamHandler就可以了 (之前尝试了打印到文件的log,但是放在项目目录中,这样不好。文章以及组长都建议放在/var/^/^.log的模式,需要在bash中给权限)。其他的formatter参考文档,没啥需要注意的。

遇到的问题及解决方案

没有遇到特别棘手的,主要就以下:

1.把配置文件放在哪里?如何在启动时默认运行?

要在setting里面设置,或者放在其他文件里面,import到setting里面。具体方法是:

CUSTOM_LOGGING = {
    'version' = 1,
    'disable_existing_loggers': True,
    'formatters':……
    'handlers':……
    'loggers'…… 
}

但是任然没有用,必须加上:

logging.config.dictConfig(CUSTOM_LOGGING)
2.logger中定义的django不能使用handler

没有完全禁用之前的配置,需要加上:
LOGGING_CONFIG = None把它放在CUSTOM_LOGGING之前

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值