uwsgi.log中的重复日志

原创
2014/01/04 00:37
阅读数 4.6K

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']

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





展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部