热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

springboot2中如何使用log4j2日志组件

这期内容当中小编将会给大家带来有关springboot2中如何使用log4j2日志组件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大

这期内容当中小编将会给大家带来有关springboot2中如何使用log4j2日志组件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

springboot2+log4j2+kafka

这三个整合到一起还是挺方便的,官方都直接支持了。主要就是springboot排除spring-boot-starter-logging,然后在log4j2的配置文件增加kafkaappenders,简单示例如下


	
	${bootstrap.servers}

这样日志就能输出到kafkatopic中了。(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

这三个直接去官网下载最新的即可,ElasticsearchKibana集成最简单了。不用改动任何配置,直接起来即可。先启动Elasticsearch,然后再启动KibanaKibana默认是有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里面配置的patterndate就是把日志里面的时间当成ES里面时间索引字段。

这样配置好之后就可以启动logstash了,之后就可以去kibana主页添加Index patterns,最后在Discover这里看到日志了。 效果图如下:

springboot2中如何使用log4j2日志组件

点击查看详情,可以看到日志内容就是上面在logstash里面配置的分割内容,如下:

springboot2中如何使用log4j2日志组件

上述就是小编为大家分享的springboot2中如何使用log4j2日志组件了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程笔记行业资讯频道。


推荐阅读
author-avatar
henrysong
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有