这期内容当中小编将会给大家带来有关springboot2中如何使用log4j2日志组件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
十载的宜君网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都全网营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整宜君建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联建站从事“宜君网站设计”,“宜君网站推广”以来,每个客户项目都认真落实执行。
springboot2
+log4j2
+kafka
这三个整合到一起还是挺方便的,官方都直接支持了。主要就是springboot
排除spring-boot-starter-logging
,然后在log4j2
的配置文件增加kafka
的appenders
,简单示例如下
${bootstrap.servers}
这样日志就能输出到kafka
的topic
中了。(kafka
依赖了zookeeper
,需要先开启)这里日志的pattern如下:
[${application.name}][%d{DEFAULT}][%X{X-B3-TraceId},%X{X-B3-SpanId},%X{X-B3-ParentSpanId}][%t][%c{20}][%p]-%m%n
里面的traceId、spanId可以忽略掉,这个是集成了微服务的链路追踪用到的。
Elasticsearch
+Logstash
+Kibana
这三个直接去官网下载最新的即可,Elasticsearch
和Kibana
集成最简单了。不用改动任何配置,直接起来即可。先启动Elasticsearch
,然后再启动Kibana
,Kibana
默认是有ES数据源的,所有不用额外配置。ES启动之后访问默认的9200端口,能看到有版本号的信息输入就是启动成功了,Kibana
默认是5601的端口,启动成功了的话,访问这个端口就会进去主页。
Logstash
是需要和kafka
、ES集成的,所以需要添加配置再启动。去config目录下面新增一个logstash.conf
文件,然后配置如下内容:
input { kafka { topics_pattern => "kafka-log-.*" bootstrap_servers => "127.0.0.1:9092" auto_offset_reset => "earliest" consumer_threads => 5 decorate_events => "true" } } filter { grok { match => { message => "\[(?.*?)\]\[(? .*?)\]\[(? .*?)\]\[(? .*?)\]\[(? .*?)\]\[(? .*?)\]-(? .*)" } } mutate { add_field => { "logtime" => "%{date}" } } date { timezone => "Asia/Shanghai" match => ["logtime", "yyyy-MM-dd HH:mm:ss,SSS"] target => "@timestamp" remove_field => [ "logtime" ] } } output { elasticsearch { hosts => ["http://localhost:9200"] index => "%{[@metadata][kafka][topic]}-%{+YYYY-MM-dd}" } stdout { codec => rubydebug } }
这里使用topics_pattern
是因为我这边微服务项目测试的kafka
日志topic
都是一样的前缀,decorate_events
这个属性需要配置一下true,方便下面的output
中的index
中获取具体topic
,就是这个 %{[@metadata][kafka][topic]}
,message
对应的正则就是去分割log4j2
里面配置的pattern
。date
就是把日志里面的时间当成ES里面时间索引字段。
这样配置好之后就可以启动logstash
了,之后就可以去kibana
主页添加Index patterns
,最后在Discover
这里看到日志了。 效果图如下:
点击查看详情,可以看到日志内容就是上面在logstash
里面配置的分割内容,如下:
上述就是小编为大家分享的springboot2中如何使用log4j2日志组件了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注创新互联行业资讯频道。