uwsgi.log中的重复日志

本文探讨了在使用Django框架结合uWSGI部署时的日志配置策略,尤其是在不同环境中如何灵活配置日志输出,避免日志重复记录,节省磁盘空间并提高程序执行效率。

uwsgi.log中的信息输出为标准输出流,因此若在django中logger指向了console输出则会输出到uwsgi.log中;

若配置了多个handler则存在日志重复记录的问题,浪费磁盘空间,影响程序执行效率;

如配置了logger

'': {
            'handlers': ['default','console'],
            'level':LOG_LEVEL,
            'propagate': False
 },

default对应的handler设置为

'default': {
            'level':LOG_LEVEL,
            'class':'logging.handlers.TimedRotatingFileHandler',
            'filename': os.path.join(PROJ_PAR_ROOT+'/log/',('%s.log' % APP_NAME)),
            'when':'MIDNIGHT',
            'backupCount': 7,
            'encoding': 'utf8',
            'interval' : 1,
            'formatter':'standard'
        },

则会在${APP_NAME}.log与uwsgi.log中均输出日志信息;

可以将console去除掉,但是这样在开发环境下就不能很直观的从控制台看到日志输出,特别是windows下,因此在不同环境下需要不同的日志设置

因此可以将logger中的handler变量化设置如下:

'': {
            'handlers': DEFAULT_LOG_HANDLERS,
            'level':LOG_LEVEL,
            'propagate': False
        },

这样在不同的环境配置文件中定义期望的DEFAULT_LOG_HANDLERS即可;

日常与线上环境设置为

DEFAULT_LOG_HANDLERS=['default']

开发环境设置为

DEFAULT_LOG_HANDLERS=['default','console']

不同环境设定不同配置文件的方式,参见另外一篇文章;





转载于:https://my.oschina.net/coldlemon/blog/190004

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值