python日志模块的日志处理程序,向kafka主题发送日志。

kafka-python-log-handler的Python项目详细描述


kafka python日志处理程序

将日志传递到kafka的标准logging模块的处理程序。 当前的实现对于满足我们的需求来说是非常基本的,但是当父项目增长时,可能会出现额外的功能。

安装

这是在python 3.6.7中使用kafka-python1.4.3和kafka 2.12开发的。

开发

测试将尝试通过默认值连接到kafka实例。 选择将KAFKA_HOSTKAFKA_PORT设置到计算机上的适当位置将更改此设置。

安装开发要求

    $ pip install -r requirements-dev.txt

设置预提交挂钩

    $ pre-commit install

如何使用

创建此处理程序的唯一必要条件是topic将值推送到。 可选地,可以提供key和/或partition。 提供给处理程序的任何其他关键字值配置都将用于初始化kafka.KafkaProducer

向python记录器添加处理程序非常简单:

importloggingfromkafka_handlerimportKafkaLogHandlerhandler=KafkaLogHandler(topic="example_topic",key="example_key")# Default parameters for Kafka connection are usedlogger=logging.getLogger()# No name gives you the root loggerlogger.setLevel("WARNING")logger.addHandler(example_handler)logger.warning("This will push this message to the 'example_topic' in Kafka.")

配置Kafka连接

默认情况下,每个处理程序将创建一个kafka.KafkaProducer实例,将每个参数从它们的__init__(**kwargs)传递给kafkaproducer的实例化。 这意味着您可以根据需要配置连接,但是每个参数都应该提供关键字;Handler(host="localhost"),而不是Handler("localhost")。 所有可用的配置选项都在kafka-python documentation中可用。

handler=KafkaLogHandler(topic="topic",bootstrap_servers="other_host:9092",retries=0)

配置消息日志

每个处理程序都有raw_logging选项,可以选择性地提供。 从初始化中省略它,将默认为False,这意味着正在记录的消息将纯粹是发送的消息。 如果将其设置为True,首先将记录内容,然后将其附加到行号,最后是路径名。

raw_handler=KafkaLogHandler(topic="topic",raw_logging=True)...logging.info("Test message")

纯处理程序将发出如下消息:Test message.
但是,raw_handler将发出如下消息:Test message. - 2: /.../file.py

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java能否使用OpenJPA将一个实体持久化到多个持久化单元?   java如何访问当前按下的键   java singleton是否意味着哈希代码总是返回相同的值?   inputstream无法在Java中同时使用STDIN和STDERR读取程序输出   java运行时有多贵。getRuntime()与获取内存度量相结合   java AndroidStudio ListView适配器更新   java小程序请求未扩展实时会话   java是设置布尔值所必需的关键部分?   java比较两个字符串,并突出显示发现的不匹配项   java带抽屉布局,无论哪个屏幕处于活动状态,如何在按下后退键时关闭应用程序?   爪哇:颜色有什么区别。黑色和彩色。黑色   Velocity模板中子类的java访问方法   java如何快速学习Drools或其他规则引擎   从Java应用程序访问时缓存数据库查询结果   java cassandra nodetool JPLISAgent。c错误   java我正在解析一个没有pubDate的RSS提要,有没有其他方法可以确定一个项目是何时发布的?