Как изменить вывод по умолчанию колб логгера на обработчик регистрации json - PullRequest
0 голосов
/ 27 мая 2019

Мне нужно изменить обработчик ведения журнала по умолчанию на флешку на пользовательский текст регистрации JSON, я могу изменить обработчик перед app.run (), но при этом колба установит обработчик по умолчанию, когда у меня нет стандартного обработчика (clear () обработчики ведения журнала)

1 Ответ

0 голосов
/ 27 мая 2019
import logging
from pythonjsonlogger.jsonlogger import JsonFormatter

def get_logger(module_name):
    """Generate a logger."""
    logger = logging.getLogger(module_name)
    # logger.setLevel(logging.CRITICAL)
    logger.setLevel(logging.DEBUG)
    logger.propagate = False    # reset handler to avoid duplicates
    logger.handlers = [get_json_handler()]
    return logger


def get_json_handler():
    """Generate a JsonFormatter"""
    formatter = JsonFormatter("(asctime) (levelname) (module) (funcName) (lineno) (message)")
    log_handler = logging.StreamHandler()
    log_handler.setFormatter(formatter)
    return log_handler

# Example:
log = get_logger()

flask_log = logging.getLogger('werkzeug')
flask_log.setLevel(logging.DEBUG)
flask_log.addHandler(log)
...