Java

[Java] SLF4J로 예외 로깅하기

김맷돌 2024. 2. 27. 10:51
반응형

이 글에서는 자바에서 SLF4J를 이용하여 예외를 로깅하는 방법에 대해 알아볼 것이다. slf4j-simple API를 이용하도록 하겠다.

일반적으로, 대부분의 예외들은 Logger 클래스의 error() 메서드로 로그를 남긴다.

void error(String msg);
void error(String format, Object... arguments);
void error(String msg, Throwable t);

 

우선 Logger를 먼저 초기화하도록 하자.

Logger logger = LoggerFactory.getLogger(NameOfTheClass.class);

 

만약 단순히 에러 메시지만을 보여주고 싶다면, 다음과 같이 추가할 수 있다.

logger.error("An exception occurred!");
ERROR packageName.NameOfTheClass - An exception occurred!

 

위 방법은 충분히 심플하지만, 예외와 관련한 정보를 좀 더 추가하고 싶다면(stack trace를 포함하여) 다음과 같이 쓸 수 있다.

logger.error("An exception occurred!", new Exception("Custom exception"));
ERROR packageName.NameOfTheClass - An exception occurred!
java.lang.Exception: Custom exception
	  at packageName.NameOfTheClass.methodName(NameOfTheClass.java:lineNo)

 

매개변수가 여러 개인 경우에 마지막 매개변수로 exception을 넣어주면, SLF4J는 마지막 인수를 예외로 추론해 처리한다.

logger.error("{}, {}! An exception occurred!", 
	  "Hello", 
	  "World", 
	  new Exception("Custom exception"));
ERROR packageName.NameOfTheClass - Hello, World! An exception occurred!
java.lang.Exception: Custom exception 
	  at packageName.NameOfTheClass.methodName(NameOfTheClass.java:lineNo)
반응형