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ため、これを実行してすべてのセロリ タスクにハンドラーを適用できます。

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