卡夫卡日志处理程序

kafkaloghandler的Python项目详细描述


卡夫卡罗甘德勒

提供与pythonlogging兼容的处理程序,用于向 卡夫卡消息总线。

依赖于汇合的卡夫卡模块连接到卡夫卡。

设计为支持标准和结构日志格式,并序列化日志 数据作为json发布为kafka消息时。消息被规范化为 更兼容logstash/filebeat格式。

用法

示例:

import logger

from kafkaloghandler import KafkaLogHandler

log = logging.getLogger()

klh = KafkaLogHandler(bootstrap_servers=["test-kafka:9092"], topic="testtopic")

log.addHandler(klh)

data={'example':'structured data'}

log.info('message to send to kafka', data=data)

可提供给kafkaloghandler的参数:

引导服务器
要连接到的Kafka引导服务器列表。

默认值:["localhost:9092"]

额外配置

额外{a1}字典 传递给librdkafka。

注意:参数bootstrap_servers将覆盖 bootstrap.servers

默认值:{}

超时

刷新生产者队列的超时(秒)。参见librdkafka文档。

默认值:10.0

主题
在卡夫卡中设置主题的字符串。

默认值:"kafkaloghandler"

在kafka中设置默认键的字符串,可用于在kafka中进行摘要。

注意:可以通过传递 dict到日志记录器,其中包含{"key": "new_key_for_this_message"}

默认值:"klh"

扁平化

扁平化作为结构化登录传递到父级的嵌套字典和列表 字典层,达到一定深度。

这在登录到没有良好支持的外部系统时非常有用 用于分层数据。

示例字典:{'a': {'b': 'c'}}将被展平为{'a.b': 'c'}

示例列表:{'a': ['b', 'c']}将展平为{'a.0': 'b', 'a.1': 'c'}

如果超过深度,任何剩余的较深项目将添加到 在展平键下输出。

设置为0可关闭展平。

默认值:5

分隔符
扁平化时在项目之间使用的分隔符。

默认值:.

黑名单

输出json时要从结构化日志中丢弃的顶级键的列表。

默认值:["_logger", "_name"]

测试

可以使用tox

运行单元测试

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

推荐PyPI第三方库


热门话题
java如何访问ArrayList中对象的特定元素   反射如何检查java。朗。反思。方法返回类型是集合?   当我想使用socket发送对象时出现Java异常   eclipse是否可以修补部署到Tomcat/WildFly的Java应用程序?   java Spring:无法导入库   java从基类请求体DTO获取派生DTO   向ArrayList中添加元素时引发java异常   算法Java程序从列表中给定的数字中分组连续数<list>   java如何从类中获取一个变量到主活动?   regex Java模式,用于双引号或单引号内的数据,不包括括号内的引号   类Java OOP物理引擎类型   java在使用Camel时,如何使用Spring加载属性?   java Junit 4在@Mock中的作用域生成方法