spring boot整合log4j2及MQ消費(fèi)處理系統(tǒng)日志示例
前言
當(dāng)系統(tǒng)的并發(fā)比較高的時(shí)候,日志的處理輸出也是一種性能的開銷負(fù)擔(dān),所以,選擇一個(gè)中間件來處理消費(fèi)日志必不可少!
下面是spring boot整合log4j2結(jié)合spring amqp來消費(fèi)處理系統(tǒng)日志的實(shí)例,只需要簡單的三步
1.添加相關(guān)jar依賴
<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.系統(tǒng)log4j2.xml配置
如果需要跨系統(tǒng)處理日志,拷貝一份log4j2.xml到處理日志的系統(tǒng)
<?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.添加處理日志的消息監(jiān)聽
請將以下代碼置于spring context上下文環(huán)境中
@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("在這里處理消費(fèi)你的日志信息" + logMessage);
}更多spring amqp的應(yīng)用,請參考spring amqp官方參考文檔:http://docs.spring.io/spring-amqp/docs
以上就是spring boot整合log4j2及MQ消費(fèi)處理系統(tǒng)日志示例的詳細(xì)內(nèi)容,更多關(guān)于spring boot整合MQ消費(fèi)log4j2日志的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
關(guān)于Spring的@Autowired依賴注入常見錯(cuò)誤的總結(jié)
有時(shí)我們會(huì)使用@Autowired自動(dòng)注入,同時(shí)也存在注入到集合、數(shù)組等復(fù)雜類型的場景。這都是方便寫 bug 的場景,本篇文章帶你了解Spring @Autowired依賴注入的坑2021-09-09
Java實(shí)現(xiàn)excel表格轉(zhuǎn)成json的方法
本篇文章主要介紹了Java實(shí)現(xiàn)excel表格轉(zhuǎn)成json的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-09-09
Java如何獲取Json中的數(shù)據(jù)實(shí)例代碼
這篇文章主要給大家介紹了關(guān)于Java如何獲取Json中數(shù)據(jù)的相關(guān)資料,我們在日常開發(fā)中少不了和JSON數(shù)據(jù)打交道,那么我們來看看JAVA中常用的JSON獲取方式,需要的朋友可以參考下2023-09-09
Spring5學(xué)習(xí)之基礎(chǔ)知識(shí)總結(jié)
這篇文章主要介紹了Spring5學(xué)習(xí)之基礎(chǔ)知識(shí)總結(jié),文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)java的小伙伴們有非常好的幫助,需要的朋友可以參考下2021-05-05
2020最新 idea下載、安裝與創(chuàng)建項(xiàng)目測試的教程圖解
這篇文章主要介紹了2020最新 idea下載、安裝與創(chuàng)建項(xiàng)目測試的教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08
Java 無參數(shù)構(gòu)造函數(shù)的應(yīng)用
本篇文章主要介紹了Java 無參數(shù)構(gòu)造函數(shù)的應(yīng)用,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-04-04

