我正在尝试使用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,
},
}
目前,我在控制台中看到了日志,但没有看到日志文件。日志文件已创建,但它是空的。
答案 0 :(得分:2)
在记录器中定义从未创建的记录器(myapp.myapp.tasks.add
)。您将模块名称指定为getLogger
,可能是myapp.myapp.tasks
。试试这个:
...
'loggers': {
'myapp.myapp.tasks': {
...
当您使用get_task_logger
时,所有记录器都具有名为celery.task
的父级,因此您可以执行此操作以将处理程序应用于所有芹菜任务:
...
'loggers': {
'celery.task': {
...