Skip to content

Commit 37bb2af

Browse files
committed
step5 라우팅 모델을 이용한 로그 수집 예제
1 parent baaac54 commit 37bb2af

17 files changed

Lines changed: 200 additions & 437 deletions

src/main/java/net/harunote/hellomessagequeue/HelloMessageQueueApplication.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,14 @@
33
import org.springframework.boot.SpringApplication;
44
import org.springframework.boot.autoconfigure.SpringBootApplication;
55

6+
/**
7+
* Step 5 Routing model implementing LogCollector (TOPIC_EXCHANGE, DIRECT_EXCHANGE)
8+
*
9+
* @author : codevillain
10+
* @fileName : HelloMessageQueueApplication
11+
* @since : 12/20/24
12+
*/
13+
614
@SpringBootApplication
715
public class HelloMessageQueueApplication {
816

src/main/java/net/harunote/hellomessagequeue/step4/HomeController.java

Lines changed: 0 additions & 21 deletions
This file was deleted.

src/main/java/net/harunote/hellomessagequeue/step4/NewsController.java

Lines changed: 0 additions & 25 deletions
This file was deleted.

src/main/java/net/harunote/hellomessagequeue/step4/NewsPublisher.java

Lines changed: 0 additions & 29 deletions
This file was deleted.

src/main/java/net/harunote/hellomessagequeue/step4/NewsRestController.java

Lines changed: 0 additions & 20 deletions
This file was deleted.

src/main/java/net/harunote/hellomessagequeue/step4/NewsSubscriber.java

Lines changed: 0 additions & 29 deletions
This file was deleted.

src/main/java/net/harunote/hellomessagequeue/step4/RabbitMQConfig.java

Lines changed: 0 additions & 57 deletions
This file was deleted.

src/main/java/net/harunote/hellomessagequeue/step4/WebSocketConfig.java

Lines changed: 0 additions & 24 deletions
This file was deleted.
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package net.harunote.hellomessagequeue.step5;
2+
3+
import org.springframework.stereotype.Component;
4+
5+
@Component
6+
public class CustomExceptionHandler {
7+
8+
private final LogPublisher logPublisher;
9+
10+
public CustomExceptionHandler(LogPublisher logPublisher) {
11+
this.logPublisher = logPublisher;
12+
}
13+
14+
// 에러나 로그 처리
15+
public void handleException(Exception e) {
16+
String message = e.getMessage();
17+
18+
String routingKey;
19+
20+
if (e instanceof NullPointerException) {
21+
routingKey = "log.error";
22+
} else if (e instanceof IllegalArgumentException) {
23+
routingKey = "log.warn";
24+
} else {
25+
routingKey = "log.error";
26+
}
27+
28+
logPublisher.publish(routingKey, "Exception이 발생했음 : " + message);
29+
}
30+
31+
// 메시지 처리
32+
public void handleMessage(String message) {
33+
String routingKey = "log.info";
34+
logPublisher.publish(routingKey, "Info Log : " + message);
35+
}
36+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package net.harunote.hellomessagequeue.step5;
2+
3+
import org.springframework.amqp.rabbit.annotation.RabbitListener;
4+
import org.springframework.stereotype.Component;
5+
6+
@Component
7+
public class LogConsumer {
8+
9+
@RabbitListener(queues = RabbitMQConfig.ERROR_QUEUE)
10+
public void consumeError(String message) {
11+
System.out.println("[ERROR]를 받음 : " + message);
12+
}
13+
14+
@RabbitListener(queues = RabbitMQConfig.WARN_QUEUE)
15+
public void consumeWarn(String message) {
16+
System.out.println("[WARN]를 받음 : " + message);
17+
}
18+
19+
@RabbitListener(queues = RabbitMQConfig.INFO_QUEUE)
20+
public void consumeInfo(String message) {
21+
System.out.println("[INFO]를 받음 : " + message);
22+
}
23+
24+
@RabbitListener(queues = RabbitMQConfig.ALL_LOG_QUEUE)
25+
public void consumeAllLogs(String message) {
26+
System.out.println("[ALL LOGS]를 받음 : " + message);
27+
}
28+
29+
}

0 commit comments

Comments
 (0)