Log/Logback Manual 8

Chapter 8. logback Mapped Diagnostic Contexts

본 문서는 https://logback.qos.ch/manual/introduction.html을 번역/요약/정리/사견 추가한 글입니다. 1. 서론 logback의 설계 목표 중 하나는 복잡한 분산 어플리케이션을 감사하고 디버깅하는 것입니다. 대부분의 실제 분산 시스템은 여러 명의 클라이언트를 동시에 처리해야 합니다. 일반적인 멀티 쓰레드 시스템에선 하나의 시스템이 하나의 클라이언트를 담당하는데 이 때, 클라이언트를 구분하기 위해 클라이언트마다 로그 객체를 생성해 로깅을 하는 것은 비효율적입니다. 좀 더 괜찮은 방법은 각각의 로그 요청마다 클라이언트별 도장을 찍는 것입니다. 이 기술은 에 나온 내용으로 logback은 이 기술을 조금 변형한 Mapped Diagnostic Contexts(MDC)를 사용..

Log/Logback Manual 2022.10.06

Chapter 7. logback filter

본 문서는 https://logback.qos.ch/manual/introduction.html을 번역/요약/정리/사견 추가한 글입니다. 1. Filter가 뭘까? Chapter 2 마지막 부분에서 로깅 이벤트가 요청되면 먼저 로그를 남길지 말지 1차적으로 결정하는 필터를 거친다고 했습니다. 이 때 말씀드린 필터가 지금 알아볼 필터와 같은 것입니다. 2. logback-classic에서 Logback-classic은 2가지 종류의 필터를 제공합니다. Regular filter, turbo filter 3. Regular filters Regular filter는 Filter 추상 클래스를 확장합니다. 이 클래스에선 ILoggingEvent를 인자로 받는 decide() 메소드 하나를 구현하면 됩니다. 이..

Log/Logback Manual 2022.10.05

Chapter 6. logback layouts

본 문서는 https://logback.qos.ch/manual/introduction.html을 번역/요약/정리/사견 추가한 글입니다. 1. Layout은 뭘까? Layout은 로깅 이벤트를 문자열로 바꿔주는 logback component입니다. Layout 인터페이스의 format()메소드가 이벤트를 받아 문자열을 반환합니다. 2. Logback-classic logback classic은 ILoggingEvent만 처리합니다. 2.1. custom Layout 만들기 기본 기능들을 구현해놓은 LayoutBase를 상속받은 뒤, doLayout()만 구현해주자 package chapters.layouts; import ch.qos.logback.classic.spi.ILoggingEvent; imp..

Log/Logback Manual 2022.10.03

Chapter 5. logback encoders

본 문서는 https://logback.qos.ch/manual/introduction.html을 번역/요약/정리/사견 추가한 글입니다. 1. Encoder는 뭘까? Encoder는 로깅 이벤트를 byte array로 변환하고 이를 OutputStream에 쓰는 역할을 합니다. Encoder는 logback 0.9.19 버전부터 추가된 기능입니다. 그 전엔 layout을 사용해 똑같은 기능을 처리했습니다. 그럼 왜 이런 변화가 발생했을까요? 바로바로 layout은 이벤트를 문자열로밖에 바꾸지 못하기 때문입니다. 거기에 더해 layout은 언제 이벤트를 쓸지에 대한 것을 모르기 때문에 이벤트를 모아 배치로 처리하는 방법도 사용하지 못합니다. 요즘은 PatternLayoutEncoder가 거의 유일하게 유용..

Log/Logback Manual 2022.10.03

Chapter 4. logback appenders

본 문서는 https://logback.qos.ch/manual/introduction.html을 번역/요약/정리/사견 추가한 글입니다. 1. Appender가 뭘까? Logback에선 로깅 이벤트를 쓰는 작업을 담당하는 것을 appender라고 합니다. Appender는 반드시 ch.qos.logback.core.Appender 인터페이스를 구현해야 합니다. package ch.qos.logback.core; import ch.qos.logback.core.spi.ContextAware; import ch.qos.logback.core.spi.FilterAttachable; import ch.qos.logback.core.spi.LifeCycle; public interface Appender exte..

Log/Logback Manual 2022.10.02

Chapter 3. logback 설정

본 문서는 https://logback.qos.ch/manual/introduction.html을 번역/요약/정리/사견 추가한 글입니다. 1. Logback 설정 일반적으로 코드의 4%가 로깅에 쓰인다고 합니다. 그렇기 때문에 이런 로그 코드들을 관리하는 도구가 필요합니다!! Logback은 코드 내에서 혹은 코드 밖에서 XML, Groovy 문법을 사용해 설정할 수 있습니다. (참고 : https://logback.qos.ch/translator/ 로 log4j.properties를 logback.xml로 바꿀 수도 있답니다.) 2. 자동 설정 logback을 설정하는 가장 쉬운 방법은 기본 설정(BasicConfigurator)을 이용하는 것입니다. logback-test.xml이나 logback.x..

Log/Logback Manual 2022.10.02

Chapter 2: logback 구조

본 문서는 https://logback.qos.ch/manual/introduction.html을 번역/요약/정리/사견 추가한 글입니다. 1. 기본 구조 logback은 3개의 모듈로 이뤄져있습니다. logback-core, logback-clssic, logback-access이며 logback-core가 다른 모듈들의 기반이 됩니다. classic은 core를 확장해 slf4j api를 구현합니다. access는 HTTP-access 로그 기능을 지원합니다. 2. 기본 클래스들 (Logger, Appenders, Layouts) logback의 기본 클래스인 logger, appenders, layouts는 서로 협력해 메시지 타입과 레벨에 맞게 로그를 남길 수 있게 해주고 포맷 방식, 로그 기록 방..

Log/Logback Manual 2022.10.01

Chapter 1. logback 소개

본 문서는 https://logback.qos.ch/manual/introduction.html을 번역/요약/정리/사견 추가한 글입니다. 1. logback이 뭘까? Logback은 log4j의 후계자로 설계된 로깅 시스템입니다. 2. logback 시작하기 2.1 기본적인 로그 출력해보기 필요한 모듈을 설치한 뒤, 다음과 같은 코드로 시작할 수 있습니다. package chapters.introduction; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class HelloWorld1 { public static void main(String[] args) { Logger logger = LoggerFactory.getLogger("..

Log/Logback Manual 2022.09.29