热门标签 | 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日志组件了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程笔记行业资讯频道。


推荐阅读
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • 本文详细解析了 Android 系统启动过程中的核心文件 `init.c`,探讨了其在系统初始化阶段的关键作用。通过对 `init.c` 的源代码进行深入分析,揭示了其如何管理进程、解析配置文件以及执行系统启动脚本。此外,文章还介绍了 `init` 进程的生命周期及其与内核的交互方式,为开发者提供了深入了解 Android 启动机制的宝贵资料。 ... [详细]
  • 在ElasticStack日志监控系统中,Logstash编码插件自5.0版本起进行了重大改进。插件被独立拆分为gem包,每个插件可以单独进行更新和维护,无需依赖Logstash的整体升级。这不仅提高了系统的灵活性和可维护性,还简化了插件的管理和部署过程。本文将详细介绍这些编码插件的功能、配置方法,并通过实际生产环境中的应用案例,展示其在日志处理和监控中的高效性和可靠性。 ... [详细]
  • 基于Linux系统的Kickstart自动化服务器部署方案
    本文针对企业需求,提出了一种基于Linux系统的Kickstart自动化服务器部署方案。该方案旨在通过无盘批量安装操作系统,提高企业IT基础设施的部署效率。Kickstart是一种利用Anaconda工具实现服务器自动化安装的技术,能够显著简化和加速操作系统的安装过程。通过详细的实施规划,本文介绍了Kickstart的工作原理及其在实际部署中的应用,为企业提供了高效的自动化部署解决方案。 ... [详细]
  • Amoeba 通过优化 MySQL 的读写分离功能显著提升了数据库性能。作为一款基于 MySQL 协议的代理工具,Amoeba 能够高效地处理应用程序的请求,并根据预设的规则将 SQL 请求智能地分配到不同的数据库实例,从而实现负载均衡和高可用性。该方案不仅提高了系统的并发处理能力,还有效减少了主数据库的负担,确保了数据的一致性和可靠性。 ... [详细]
  • 本文详细介绍了在Linux系统上编译安装MySQL 5.5源码的步骤。首先,通过Yum安装必要的依赖软件包,如GCC、GCC-C++等,确保编译环境的完备。接着,下载并解压MySQL 5.5的源码包,配置编译选项,进行编译和安装。最后,完成安装后,进行基本的配置和启动测试,确保MySQL服务正常运行。 ... [详细]
  • 在Java项目中,当两个文件进行互相调用时出现了函数错误。具体问题出现在 `MainFrame.java` 文件中,该文件位于 `cn.javass.bookmgr` 包下,并且导入了 `java.awt.BorderLayout` 和 `java.awt.Event` 等相关类。为了确保项目的正常运行,请求提供专业的解决方案,以解决函数调用中的错误。建议从类路径、依赖关系和方法签名等方面入手,进行全面排查和调试。 ... [详细]
  • 本文介绍了如何利用 Delphi 中的 IdTCPServer 和 IdTCPClient 控件实现高效的文件传输。这些控件在默认情况下采用阻塞模式,并且服务器端已经集成了多线程处理,能够支持任意大小的文件传输,无需担心数据包大小的限制。与传统的 ClientSocket 相比,Indy 控件提供了更为简洁和可靠的解决方案,特别适用于开发高性能的网络文件传输应用程序。 ... [详细]
  • 在探讨C语言编程文本编辑器的最佳选择与专业推荐时,本文将引导读者构建一个基础的文本编辑器程序。该程序不仅能够打开并显示文本文件的内容及其路径,还集成了菜单和工具栏功能,为用户提供更加便捷的操作体验。通过本案例的学习,读者可以深入了解文本编辑器的核心实现机制。 ... [详细]
  • 在 CentOS 7 上部署和配置 RabbitMQ 消息队列系统时,首先需要安装 Erlang,因为 RabbitMQ 是基于 Erlang 语言开发的。具体步骤包括:安装必要的依赖项,下载 Erlang 源码包(可能需要一些时间,请耐心等待),解压源码包,解决可能出现的错误,验证安装是否成功,并将 Erlang 添加到环境变量中。接下来,下载 RabbitMQ 的 tar.xz 压缩包,并进行解压和安装。确保每一步都按顺序执行,以保证系统的稳定性和可靠性。 ... [详细]
  • 一文讲透Cluster API的前世、今生与未来
    一文,讲,透,cluster,api,的, ... [详细]
  • SpringCloud之Bus(消息总线)
    说明:关于SpringCloud系列的文章中的代码都在码云上面地址:https:gitee.comzh_0209_javaspringcloud-ali ... [详细]
  • 经验总结:你觉得你真的了解Kafka消费者吗?附超全教程文档
    为什么要公开这些面试题?原因一:身边从事Java开发的人员越来越多,我的表弟表妹们,朋友的表弟表妹们,朋友的 ... [详细]
  • Java实现Kafka的生产者、消费者,Go语言社区,Golang程序员人脉社 ... [详细]
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社区 版权所有