我正在尝试使用 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,
},
}
目前,我在控制台中看到日志,但在日志文件中看不到。日志文件已创建,但它是空的。
最佳答案
在记录器中,您定义从未创建的记录器(myapp.myapp.tasks.add
)。您将模块名称指定给 getLogger
,它可能是 myapp.myapp.tasks
。试试这个:
...
'loggers': {
'myapp.myapp.tasks': {
...
当您使用 get_task_logger
时,所有记录器都有名为 celery.task
的父级,因此您可以执行此操作将处理程序应用于所有 celery 任务:
...
'loggers': {
'celery.task': {
...
关于django - 将 Celery 任务日志直接保存到单个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19579849/