Redis和Logstash日志记录Python

2024-05-16 03:46:04 发布

您现在位置:Python中文网/ 问答频道 /正文

Redis处理程序

from logging import Handler


class RedisHandler(Handler):
    def __init__(self, config, redis):
        Handler.__init__(self)
        self.config = config
        self.redis = redis

    def emit(self, record):
        self.redis.lpush(self.config.get('logger', 'name'), self.format(record))



from logstash_formatter import LogstashFormatter
def get_logger():
    """

    :return: Logger
    """
    logger = logging.getLogger(get_config().get('logger', 'name'))
    logger.setLevel(logging.DEBUG)
    redis_handler = RedisHandler.RedisHandler(get_config(), get_redis())
    redis_handler.setFormatter(LogstashFormatter)
    logger.addHandler(redis_handler)

    return logger

我正在尝试为我的垃圾项目实施麋鹿。在

但不知何故,record参数是作为LogRecord的实例而不是{}

unbound method format() must be called with LogstashFormatter instance as first argument (got LogRecord instance instead)


Tags: fromimportselfredisconfiggetinitlogging