2

我正在尝试使用 settings.py 中的日志记录配置将 Celery 任务日志重定向到文件中。

这是我的任务:

logger = get_task_logger(__name__)
@celery.task
def add(x, y):
    logger.info('Adding %s + %s' % (x, y))
    return x + y

这是我的日志配置:

'handlers': {
        'myappLog': {
            'level':'DEBUG',
            'class':'logging.handlers.RotatingFileHandler',
            'filename': "myapp.log",
            'maxBytes': 5242880,
            'backupCount': 2,
            'formatter': 'standard',
        },
    },
    'loggers': {
        'myapp.myapp.tasks.add': {
            'handlers': ['myappLog'],
            'level': 'DEBUG',
            'propagate': True,
        },
    }

目前,我在控制台中看到了日志,但没有看到日志文件。日志文件被创建,但它是空的。

4

1 回答 1

4

在记录器中,您定义从未创建的记录器 ( myapp.myapp.tasks.add)。您给出的模块名称getLogger可能是myapp.myapp.tasks. 尝试这个:

...
'loggers': {
  'myapp.myapp.tasks': {
...

当您使用get_task_logger所有记录器时都有父命名celery.task,因此您可以执行此操作以将处理程序应用于所有 celery 任务:

...   
'loggers': {
  'celery.task': {
...
于 2013-10-29T07:47:00.623 回答