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