log4j2 Dot Programming/Spring 2022. 5. 7. [Spring] 스프링 부트에서 로그(Log) 사용하기2 - Log4j2 (Sync, Async Appender, Async Logger) 스프링 부트에서 Log4j2 사용하기 Log4j2는 Apache의 log4j의 다음 버전이며 가장 최근에 등장한 프레임워크이다. 이는 Logback와 동일하게 자동 리로드와 필터링 기능을 제공하고 이 외에도 Java8부터 도입된 람다식 지원과 Lazy Evalutaion, 가비지 프리 기능들을 제공하고 있다. Logback과 가장 큰 차이는 Log4j2는 멀티스레드 환경에서 비동기 로거를 사용할 경우 10배 가까운 처리량을 처리할 수 있다는 것이다. 개인적으로 Log4j2와 Logback의 가장 큰 차이는 비동기 로거(Async Logger)의 차이인 것 같다. 그리고 이는 멀티 쓰레드 환경에서 더 많은 쓰레드를 다룰수록 엄청난 성능 격차를 불러일으킨다고 Log4j2 문서에서 설명하고 있다. 그래서 정말.. Dot Programming/Spring 2022. 4. 30. [Spring] 로그(Log)와 로깅 프레임워크(Logging Framework)에 대해 알아보자 - Log4j, Logback, Log4j2 System.out.print() 로그가 아닌 System.out.print()로도 콘솔에 기록을 남길 수 있으나 이를 사용하면 문제가 있다. print() 메서드를 살펴보면 synchronzied로 동기화가 되어있는 것을 볼 수 있다. 그러면 기록을 남길 때마다 쓰레드 lock이 걸리기 때문에 엄청난 성능 저하를 불러일으키게 된다. 혹여나 개발 단계에서 이를 사용했다 하더라도 운영시에는 이를 모두 삭제해줘야 한다. 방치하면 I/O 요청이 발생할 때마다 쓸데없는 리소스를 잡아먹게 된다. 로그(Log) 로그(Log)는 기록을 남기는 것이다. 로깅을 하면 앱 개발시 운영 중 발생하는 문제점을 모니터링하거나 추적하는 데 용이하다. 또한 해당 데이터를 분석해 통계를 낼 수도 있다. 하지만 로그를 잘못 사용하면 .. 이전 1 다음