1
セルラーベースのアプリケーションのロガーを設定しようとしています。 コンソールのログ記録は正常に動作します。ただし、ログメッセージは指定されたログファイルに追加されません:celery.log
。ロギング:ロガーはファイルにログを記録せず、コンソールに接続します
- なぜログメッセージがログファイルに書き込まれないのですか?ここで
は私のロギング設定
# log_config.py
import sys
LOGGING = {
'version': 1,
'disable_existing_loggers': True,
'formatters': {
'simple': {
'format': '%(levelname)s %(message)s',
'datefmt': '%y %b %d, %H:%M:%S',
},
},
'handlers': {
'console': {
'level': 'WARN',
'class': 'logging.StreamHandler',
'stream': sys.stdout,
'formatter': 'simple'
},
'celery': {
'level': 'WARN',
'class': 'logging.handlers.RotatingFileHandler',
'filename': '/tmp/celery.log',
'formatter': 'simple',
'backupCount': 5,
'maxBytes': 1024 * 1024 * 100, # 100 mb
},
},
'loggers': {
'celery': {
'handlers': ['celery', 'console'],
'propagate': True,
'level': 'WARN',
},
}
}
セロリあるとinitializiationログ:
dictConfig(log_config.LOGGING)
app = Celery('app',
broker=env('CELERY_BROKER_URL', 'amqp://'),
backend=env('CELERY_BACKEND_URL', 'rpc://'),
include='tasks')
サンプル出力
[2016-05-04 12:32:45,077: WARNING/MainProcess] [email protected] ready.
[2016-05-04 12:32:47,503: WARNING/Worker-2] [INFO] Running plugin `one` with target `www.example.com`
[2016-05-04 12:32:47,508: WARNING/Worker-1] [INFO] Running plugin `two` with target `www.example.com`
[2016-05-04 12:32:47,559: WARNING/Worker-3] [INFO] Running plugin `three` with target `('127.0.0.1', 'example.com')`
[2016-05-04 12:32:47,559: WARNING/Worker-3] tasks.MySampleTask[31ffe71d-4645-47f2-1237-4c431282ac12]: it works!
PS:私はDjangoを使用していません。
サンプル出力はどこから得られますか? '単純な'フォーマッタで定義されたフォーマットと一致しません。 – Pedru
- 最初はセロリから直接です。 2行目から4行目は簡単な印刷で行なわれます。最後の行は 'from celery.utils.log import get_task_logger' - >' logger = get_task_logger(__ name__) 'と' logger.warn( 'it works!') 'です。 – Jon