def json_console_logger(init_context): level = coerce_valid_log_level(init_context.logger_config['log_level']) name = init_context.logger_config['name'] klass = logging.getLoggerClass() logger_ = klass(name, level=level) handler = coloredlogs.StandardErrorHandler() class JsonFormatter(logging.Formatter): def format(self, record): return seven.json.dumps(record.__dict__) handler.setFormatter(JsonFormatter()) logger_.addHandler(handler) return logger_
def json_console_logger(init_context): """This logger provides support for sending Dagster logs to stdout in json format. Example: .. code-block:: python from dagster import op, job from dagster.loggers import json_console_logger @op def hello_op(context): context.log.info('Hello, world!') context.log.error('This is an error') @job(logger_defs={'json_logger': json_console_logger})]) def json_logged_job(): hello_op() """ level = coerce_valid_log_level(init_context.logger_config["log_level"]) name = init_context.logger_config["name"] klass = logging.getLoggerClass() logger_ = klass(name, level=level) handler = coloredlogs.StandardErrorHandler() class JsonFormatter(logging.Formatter): def format(self, record): return seven.json.dumps(record.__dict__) handler.setFormatter(JsonFormatter()) logger_.addHandler(handler) return logger_