Django-Celery-supervisory日志记录配置



我有一个django项目,里面有一个芹菜任务(正在运行),但我对日志记录有一个问题,我所做的是:

任务日志get_Task_logger:

from celery.utils.log import get_task_logger
logger = get_task_logger('celery')

Django日志记录:

LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'root': {
    'level': 'DEBUG',
    'handlers': ['sentry', 'file'],
},
'formatters': {
    'verbose': {
        'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'
    },
},
'handlers': {
    'console': {
        'level': 'DEBUG',
        'class': 'logging.StreamHandler',
        'formatter': 'verbose',
    },
    'celery': {
        'level': 'INFO',
        'class': 'logging.StreamHandler',
        'stream': sys.stdout,
    },
 ........
},
'loggers': {
    'celery': {
        'handlers': ['celery'],
        'level': 'INFO',
    },
......
},

主管芹菜配置:

  • [节目:芹菜]*command=/usr/local/bin/celeb-worker-A应用程序--autoscale=20,10-E-l INFO-Ofair
  • directory=/xxx/celerydir
  • numprocs=1
  • stdout_logfile=/xxx/logs/celery_worker.log
  • stderr_logfile=/xxx/logs/celery_worker_err.log
  • autostart=true
  • autorestart=真
  • startsecs=10
  • stopwaitsecs=600
  • stopasgroup=true
  • 优先级=998

我的问题是,正如你所看到的,在Django->celeni处理程序中,我指定了"stream":sys.stdout,但当我用supervisord启动celeni时,我会看到这两个日志存储所有级别的所有日志的celey_worker.logceley_wworker_err.log:INFO、WARNING、ERROR。。。为什么?

我如何为芹菜配置记录器,使其仅将所有芹菜日志重定向到stdout,并让supervisord仅在cele_worker.log上存储级别信息

感谢

我认为这是因为默认情况下,芹菜会向stderr而不是stdout报告事情,如果有帮助的话,可以使用supervisorordredirectsderr=true标志将两个文件合并为一个文件。

芹菜中有一个设置,让您指定一个日志文件,如果没有指定日志文件,它将使用stderr。

相关内容

  • 没有找到相关文章

最新更新