logging(4)
-
NDC와 MDC
1. NDC란 요즘 사용되는 웹 어플리케이션은 멀티 스레드로 동작합니다. 서블릿은 어떤 클라이언트에 호출되더라도 같은 로그 기록을 남기는데, 이렇게 할 경우에 오류가 발생했을 때 어떤 클라이언트를 담당하는 스레드에서 오류가 발생했는지 알기 힘듭니다. 이를 해결하기 위해 로깅 출력에 클라이언트에 대한 특징적인 정보를 같이 출력하는 방법을 사용합니다. NDC는 각 클라이언트에 대한 특징 정보를 지정하기 위한 클래스입니다. NDC 클래스의 메소드 // diagnostic을 출력할 때 사용 public static String get(); // NDC에 있는 최상위에 있는 콘텍스트를 제거 public static String pop(); // 현재 쓰레드를 위한 diagnostic 콘텍스트 추가 public s..
2020.04.11 -
LogBack
1. LogBack이란 LogBack이란 Log4J를 만든 개발자 Ceki Gülcü가 Log4J를 기반으로 더 빠른 속도와 더 적은 메모리 점유율 등의 성능을 개발하여 만든 Logging Framework입니다. 2. LogBack의 특징 Level 로그에 레벨을 설정할 수 있습니다. 개발 시 디버깅을 위해 출력하도록 한 로그들은 개발 완료 후 운영 시점에서는 더 이상 출력하지 않게 합니다. 로그마다 레벨을 설정해두고 설정 파일에서 출력 로그 레벨을 설정하여 원하는 단계의 로그만 출력할 수 있습니다. Appender 출력 방법을 선택할 수 있습니다. 로그의 기록을 담당하는 Appender에게 출력 위치(콘솔, 파일 등)나 출력 내용(날짜/시간, 레벨 등)에 대한 패턴을 설정할 수 있습니다. Logger..
2020.04.06 -
SLF4J
1. SLF4J란 SLF4J(Simple Logging Façade For Java)란 Logging Framework들을 추상화해 놓은 것입니다. Facade Pattern을 이용한 Logging Framework입니다. SLF4J는 추상 Logging Framework이기 때문에 단독으로는 로깅을 할 수 없습니다. 보통은 Log4J나 Logback 프레임워크를 함께 사용합니다. SLF4J의 특징 JVM에 의해 유효성 체크가 되며, 바인딩 Logging Framework가 없다면 아무런 동작을 할 수 없습니다. Log4J나 Logback과 같은 Logging Framework를 지원합니다. 기존 Legacy Logging Api를 지원하며, SLF4J로 Migration도 지원합니다. 인자형 로그 메시..
2020.04.03 -
Java Logging
1. Logging이란 Log란 시스템 동작 시 시스템 상태, 작동 정보를 시간의 경과에 따라 기록한 것을 말합니다. 그리고 Logging이란 정보를 제공하는 일련의 기록인 Log를 생성하도록 시스템을 작성하는 활동을 말합니다. 저장된 Log는 사용자의 패턴이나 시스템 동작 자체의 분석에 사용될 수 있으며 해킹이나 침입 등의 사고가 발생한 경우 비정상 동작의 기록을 통해 감사 추적을 수행할 수 있습니다. Logging의 장점 Log는 재현하기 힘든 버그에 대한 유용한 정보를 제공 Log는 성능에 관한 통계와 정보를 제공할 수 있음 설정이 가능할 때, Log는 예기치 못한 특정 문제들을 디버그하기 위해, 그 문제들을 처리하도록 코딩하지 않아도 일반적인 정보를 갈무리할 수 있음 2. Java.util.log..
2020.04.03