卡夫卡日志处理程序

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中未按预期工作   JavaSpringWebClient:自动计算主体的HMAC签名并将其作为头传递   foreach是否有一个Java等效的foreach循环和一个引用变量?   java如何在Eclipse中导入jar   使用特定第三方或java时lombok触发错误。*方法或构造函数   安卓 java将对象数组转换为int数组   java使一定百分比的JUnit测试通过   java Android:将Seekbar的一个值与另一个值进行比较   java将int数组(图像数据)写入文件的最佳方式是什么   java取代了系统。yml的构造函数内的getProperty   sqlite Java将公钥和私钥转换为字符串,然后再转换回字符串   安卓获取白色像素并将其保存到java opencv中的数组中   java为什么是ServerSocket。setSocketFactory静态?   Java数组似乎在不直接修改的情况下更改值