2013-10-25 63 views
0

我想使用settings.py中的日誌配置將Celery任務日誌重定向到一個文件中。直接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, 
     }, 
    } 

目前,我在日誌中看到控制檯上,而不是到日誌文件。日誌文件被創建,但它是空的。

回答

2

在記錄器中定義了從未創建的記錄器(myapp.myapp.tasks.add)。您給模塊名稱getLogger這可能是myapp.myapp.tasks。試試這個:

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

當您使用get_task_logger所有記錄儀有一個名爲celery.task這樣你就可以做到這一點適用於處理所有任務芹菜父:

... 
'loggers': { 
    'celery.task': { 
... 
+0

賓果。只是爲了澄清,你用'__name__'創建記錄器作爲解析爲模塊的參數,而不是作爲任務包裝的函數名稱。 –

相關問題