前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >spring boot通过MQ消费log4j2的日志

spring boot通过MQ消费log4j2的日志

作者头像
kl博主
发布2023-11-18 10:06:54
1370
发布2023-11-18 10:06:54
举报
文章被收录于专栏:kl的专栏kl的专栏

前言碎语

? 当系统的并发比较高的时候,日志的处理输出也是一种性能的开销负担,所以,选择一个中间件来处理消费日志必不可少!下面是spring boot整合log4j2结合spring amqp来消费处理系统日志的实例,只需要简单的三步

1.添加相关jar依赖

代码语言:javascript
复制
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-amqp</artifactId>
			<exclusions>
				<exclusion>
					<groupId>org.springframework.boot</groupId>
					<artifactId>spring-boot-starter-logging</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-log4j2</artifactId>
		</dependency>

2.系统log4j2.xml配置,如果需要跨系统处理日志,拷贝一份log4j2.xml到处理日志的系统

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
	<Appenders>
		<Console name="STDOUT" target="SYSTEM_OUT">
			<PatternLayout pattern="%m%n" />
		</Console>
		<RabbitMQ name="rabbitmq"
				  addresses="localhost:5672"
				  user="guest"
				  password="guest"
				  virtualHost="/"
				  exchange="log4j2Sample"
				  applicationId="log4j2SampleAppId"
				  routingKeyPattern="%X{applicationId}.%c.%p"
				  contentType="text/plain"
				  contentEncoding="UTF-8"
				  generateId="false"
				  deliveryMode="PERSISTENT"
				  charset="UTF-8"
				  senderPoolSize="3"
				  maxSenderRetries="5">
		</RabbitMQ>
	</Appenders>
	<Loggers>
		<Logger name="org.springframework.amqp.samples.log4j2" level="info">
			<AppenderRef ref="rabbitmq" />
		</Logger>
		<Root>
			<AppenderRef ref="STDOUT" />
		</Root>
	</Loggers>
</Configuration>

3.添加处理日志的消息监听,请将以下代码置于spring context上下文环境中

代码语言:javascript
复制
	@RabbitListener(bindings = @QueueBinding(
			exchange = @Exchange(value = "log4j2Sample", type = ExchangeTypes.FANOUT),
			value = @org.springframework.amqp.rabbit.annotation.Queue))
	public void echoLogs(String logMessage) {
		System.out.println("在这里处理消费你的日志信息" + logMessage);
	}

更多spring amqp的应用,请参考spring amqp官方参考文档:http://docs.spring.io/spring-amqp/docs

本文参与?腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-12-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
消息队列 TDMQ
消息队列 TDMQ (Tencent Distributed Message Queue)是腾讯基于 Apache Pulsar 自研的一个云原生消息中间件系列,其中包含兼容Pulsar、RabbitMQ、RocketMQ 等协议的消息队列子产品,得益于其底层计算与存储分离的架构,TDMQ 具备良好的弹性伸缩以及故障恢复能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com