最好用的 Kafka Json Logger Java客户端,赶紧尝试一下

最好用的 Kafka Json Logger Java客户端。
slf4j4json
最好用的 Kafka Json Logger 库;不尝试一下可惜了!
Description
一款为 Kafka 提供的 json logger 客户端,支持将 json 格式的 log 输出到 kafka、文件、控制台。
支持 slf4j 的全部功能。
比 KafkaLog4jAppender 更好用,可配置性更好。
支持 close logger, 在程序关闭之前 flush log to kafka。
支持链式编程模式,方便用户使用。
maven dependency
- 添加repository
<repositories>
<repositories>
<repository>
<id>release</id>
<url>https://raw.github.com/joyang1/slf4j4json/mvn-repo/</url>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>
</repositories>
- 添加dependency
<dependency>
<groupId>cn.tommyyang</groupId>
<artifactId>slf4j4json</artifactId>
<version>1.4.0</version>
</dependency>
使用
需要配置log4j.properties
因为该 jar 包同样是依赖于 slf4j, 所以按 log4j 配置 log4j.properties 即可正常使用。
log4j.properties 的详细配置说明请参考log4j 配置说明
log4j.rootLogger=DEBUG,console
#输出日志到控制台
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.Threshold=all
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%-d{yyyy-MM-dd HH\:mm\:ss} [%c\:%L]-[%p] %m%n
slf4j4json使用
- 直接打印
跟 slf4j 类似,不过该库提供链式编程方式,便于用户使用。
//通过LoggerFactory获取一个logger
final static Logger logger = LoggerFactory.getLogger(Test.class);
//打印必须调用log()方法
logger.info().field("key1", "value1").intField("key2", 1).log();
logger.warn().field("key1", "value1").intField("key2", 1).log();
logger.debug().strField("key1", "value1").longField("key2", 1L).log();
logger.trace().strField("key1", "value1").intField("key2", 1).log();
logger.error().strField("key1", "value1").intField("key2", 1).log();
- 比如有一些键值对要重复赋值,使用getLogger方法,实例如下
JsonLogger jsonLogger = logger.info().strField("appname", "app").getLogger();
jsonLogger.strField("msg","infotest1").intField("port", 2).log();
jsonLogger.field("msg","infotest2").longField("long", 23L).log();
- 1.4.0更新, 只提供getLogger方法
配置了 LogConfig 则打印 log 到 kafka,否则打印 log 到 file;
如果打印 log 到 file 文件或者控制台,则需要配置 log4j.properties,具体如何配置见使用;
如果只用打印 log 到 kafka,则不用配置 log4j.properties。
LogConfig conf = new LogConfig("Vinci", LogLevel.INFO, "localhost:9092", "admin-app-log");
LoggerFactory.openKafkaLogger(conf);
Logger logger = LoggerFactory.getLogger();
logger.info().strField("test", "test-info").log();
logger.error().strField("test", "test-error").log();
logger.warn().strField("test", "test-warn").log();
logger.debug().strField("test", "test-debug").log();
输出
{"key1":"value1","key2":1,"index":"server-end-log","host":"DESKTOP-2B1VG6J","level":"info","time":1535021174}
version
1.0版本实现 JsonLog For Java 的基本功能
使用 KafkaLog4jAppender 打印 log 到 Kafka
1.1版本- 修复JsonLogger jsonLogger = logger.info().strField("appname", "app").getLogger(); 出现重复内容的bug
1.2版本去掉log中自带的index键值对
repository修改
<repositories>
<repository>
<id>release</id>
<url>https://raw.github.com/joyang1/slf4j4json/mvn-repo/</url>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>
1.3.0版本添加kafka logger的实现,批量打印log到kafka
10s或者5m flush一次
1.4.0版本- 优化logger实现
欢迎 fork 和 star
Github地址:slf4j4json
最好用的 Kafka Json Logger Java客户端,赶紧尝试一下的更多相关文章
- 4 kafka集群部署及kafka生产者java客户端编程 + kafka消费者java客户端编程
本博文的主要内容有 kafka的单机模式部署 kafka的分布式模式部署 生产者java客户端编程 消费者java客户端编程 运行kafka ,需要依赖 zookeeper,你可以使用已有的 zo ...
- java kafka单列模式生产者客户端
1.所需要的依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="ht ...
- 报错:java.lang.AbstractMethodError: nl.techop.kafka.KafkaHttpMetricsReporter.logger()Lcom/typesafe/scalalogging/Logger;
报错背景: CDH启动kafka的时候出现报错情况,并且报错的节点挂掉. 报错现象: Exiting Kafka due to fatal exception java.lang.AbstractMe ...
- 大数据学习day31------spark11-------1. Redis的安装和启动,2 redis客户端 3.Redis的数据类型 4. kafka(安装和常用命令)5.kafka java客户端
1. Redis Redis是目前一个非常优秀的key-value存储系统(内存的NoSQL数据库).和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list ...
- kafka java客户端编程
kafka_2.10-0.8.1.1 maven <dependencies> <dependency> <groupId>org.apache.kafka< ...
- kafka的Java客户端示例代码(kafka_2.11-0.8.2.2)
1.使用Producer API发送消息到Kafka 从版本0.9开始被KafkaProducer替代. HelloWorldProducer.java package cn.ljh.kafka.ka ...
- kafka的Java客户端示例代码(kafka_2.12-0.10.2.1)
使用0.9开始增加的KafkaProducer和KafkaConsumer. Pom.xml <project xmlns="http://maven.apache.org/POM/4 ...
- elasticsearch系列七:ES Java客户端-Elasticsearch Java client(ES Client 简介、Java REST Client、Java Client、Spring Data Elasticsearch)
一.ES Client 简介 1. ES是一个服务,采用C/S结构 2. 回顾 ES的架构 3. ES支持的客户端连接方式 3.1 REST API ,端口 9200 这种连接方式对应于架构图中的RE ...
- Solr JAVA客户端SolrJ 4.9使用示例教程
http://my.oschina.net/cloudcoder/blog/305024 简介 SolrJ是操作Solr的JAVA客户端,它提供了增加.修改.删除.查询Solr索引的JAVA接口.So ...
随机推荐
- 【NOIP2013模拟】DY引擎
题目 BOSS送给小唐一辆车.小唐开着这辆车从PKU出发去ZJU上课了. 众所周知,天朝公路的收费站超多的.经过观察地图,小唐发现从PKU出发到ZJU的所有路径只会有N(2<=N<=300 ...
- layui 单选框取消选中
<ul> <li> <span class="time">17:18</span> <span class="typ ...
- [window] 使用Pyhton轻便好用的spyder IDE进行代码分析时如何指定相关的配置文件
spyder 使用pylint这个第三方库进行代码检查,其实pylint使用的代码规范默认也是pep8,不过该库还有 其它用途,在这里我专门写写在代码分析时,如何指定配置文件 一般来说,使用spyde ...
- java生成图片验证码(转)--封装生成图片验证码的工具类
博客部分内容转载自 LonlySnow的博客:后台java 实现验证码生成 1.controller方法 @RequestMapping(value = "/verifycode/img&q ...
- ORB an efficient alternative to SIFT or SURF
AbstractFeature matching is at the base of many computer vision problems, such as object recognition ...
- 基于点云的3ds Max快速精细三维建模方法及系统的制作方法 插件开发
基于点云的3ds Max快速精细三维建模方法及系统的制作方法[技术领域][0001]本发明涉及数字城市三维建模领域,尤其涉及一种基于点云的3d ...
- 清北学堂算法&&数据结构DAY1——知识整理
简述: 今天主要讲分治(主要是二分).倍增.贪心.搜索,还乱入了爬山算法和模拟退火(汗...) 一.分(er)治(fen): 二分是个在OI中广泛运用的思想,随便举些例子,就足以发现二分的运用的广泛性 ...
- jsoncpp 能做什么
jsoncpp能做什么1)跨平台跨语言动态信息数据交换.2)作为格式化配置文件使用3)对应数据结构数据类型做序列化和反序列化4)value::toStyledString 格式化json串输出 一.w ...
- SpringBoot项目属性配置-第二章
SpringBoot入门 1. 相信很多人选择Spring Boot主要是考虑到它既能兼顾Spring的强大功能,还能实现快速开发的便捷.我们在Spring Boot使用过程中,最直观的感受就是没有了 ...
- 利用python进行数据分析--pandas入门1
随书练习,第五章 pandas入门1 # coding: utf-8 # In[1]: from pandas import Series, DataFrame # In[2]: import pa ...