[英]How to add TaskFormatter in YAML config file
我想将芹菜TaskFormatter添加到我的登录处理程序中。 当我在以下代码中配置它时,它可以工作:
from celery.app.log import TaskFormatter
LOGGER = logging.getLogger()
sh = logging.StreamHandler()
sh.setFormatter(TaskFormatter('%(asctime)s - %(task_id)s - %(task_name)s - %(name)s - %(levelname)s - %(message)s'))
LOGGER.setLevel(logging.INFO)
LOGGER.addHandler(sh)
但是,当我尝试在yaml文件中配置它(我使用pyyaml)时,我得到了:
ValueError: Unable to configure formatter 'celery_formatter'
我的logger.yaml
version: 1
formatters:
celery_formatter:
class: 'celery.app.log.TaskFormatter'
format: '%(asctime)s - %(task_id)s - %(task_name)s - %(name)s - %(levelname)s - %(message)s'
datefmt: '%Y-%m-%d %H:%M'
handlers:
stdout_handler:
class: logging.StreamHandler
level: INFO
formatter: celery_formatter
stream: ext://sys.stdout
loggers:
app_logger:
level: DEBUG
handlers: [file, stdout_handler, stderr_handler]
propagate: no
我想念什么?
根据文档 ,您只能为将用于构造Formatter
实例的formatters
项目指定format
和datefmt
键。 看来您无法使用class
提供自定义格式化程序class
。
但是,您可以提供'()'
提供自定义类,请参见此处 。 配置的相关部分将变为
formatters:
celery_formatter:
(): celery.app.log.TaskFormatter
format: '%(asctime)s - %(task_id)s - %(task_name)s - %(name)s - %(levelname)s - %(message)s'
datefmt: '%Y-%m-%d %H:%M'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.