목록분류 전체보기 (181)
초보개발자 긍.응.성
logback 홈페이지의 매뉴얼을 읽으며 내용들을 정리한 글입니다. Encoder란? Encoder는 로그 이벤트를 바이트 배열로 변환하고, 해당 바이트 배열을 OutputStream에 쓰는 작업을 담당합니다. Encoder는 logback 0.9.19 버전 이후 등장하였습니다. 이전 버전에서 appender는 이벤트 메시지를 문자열로 변환하는데 layout을, write하는데 java.io.Writer를 사용하였습니다. 또한 이전 버전의 logback에서는 FileAppender 내에 PatternLayout을 중첩 선언하여 사용하였지만, 0.9.19 버전 이후부터는 FileAppender와 그 하위 클래스에 대해서는 encoder를 내장하여 더 이상 레이아웃을 사용하지 않아도 되도록 하였습니다. La..
logback 홈페이지의 매뉴얼을 읽으며 내용들을 정리한 글입니다. RollingFileAppender RollingFileAppender는 FileAppender를 상속하여 로그 파일을 rollover 합니다. 여기서 rollover는 타깃 파일을 바꾸는 것으로 이해할 수 있습니다. 예를 들어, RollingFileAppender가 타깃 파일로 log.txt에 로그 메시지를 append 하다가 어느 지정한 조건에 다다르면, 타깃 파일을 다른 파일로 바꿀 수 있습니다. RollingFileAppender와 함께 동작하는 두 가지 component가 존재합니다. 첫 번째는 RollingPolicy로 rollover에 필요한 action을 정의합니다. 두 번째는 TriggeringPolicy로 어느 시점에 ..
logback 홈페이지의 매뉴얼을 읽으며 내용들을 정리한 글입니다. Appender란? Logback은 로그 이벤트를 write 하는 작업을 Appender에게 위임(delegate)합니다. 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 extends LifeCycle, Contex..
clone 메서드를 잘 동작하게 해주는 구현 방법과 주의할 점들에 대해 알아보자. Cloneable Cloneable은 복제해도 되는 클래스임을 명시하는 용도의 믹스인 인터페이스이다. 하지만 이 인터페이스는 의도한 목적을 잘 이루지 못하였다. 가장 큰 문제는 clone 메서드가 선언된 곳이 Cloneable이 아닌 Object이고 그 마저도 protected이다. 그렇기에 Cloneable을 구현하는 것만으로는 외부에서 clone 객체를 호출할 수 없다. 그럼에도 불구하고 Cloneable 방식은 많이 사용되고 있기 때문에 알아둘 필요가 있다. Cloneable을 구현한 클래스의 인스턴스에서 clone을 호출하면 그 객체의 필드를 하나하나 복사흔 객체를 반환하며, 그렇지 않은 클래스의 인스턴스에서 호출하..
logback 홈페이지의 매뉴얼을 읽으며 내용들을 정리한 글입니다. Configuration 파일 문법 Logback은 코드를 재 컴파일하지 않고도 logging에 대하여 재 구성할 수 있습니다. Logback의 configuration 파일은 매우 유연한 문법을 갖고 있습니다. 기본적인 구조는 위의 사진과 같습니다. configuration 태그는 내부에 최대 1개의 root 태그를 갖고, 0개 이상의 appender와 logger 태그를 가질 수 있습니다. 태그 명명 규칙은 조금 복잡하지만 일반적으로 대소문자를 구분하며 camelCase를 따르도록 합니다. Logger와 같이 keyword로 지정된 태그 이름은 대소문자를 구분하지 않고 선언할 수 있습니다 (logger = Logger = LOGGER..
logback 홈페이지의 매뉴얼을 읽으며 내용들을 정리한 글입니다. Logback에서의 설정 Logback configuration 설명에 앞서, Joran이라는 이름이 자주 나올 것입니다. Joran은 Logback이 사용하는 configuration 프레임워크입니다. Log에 대한 설정을 Application Code로 작성하는 많은 시간과 노력이 필요합니다. Application Code 중 4%의 코드가 일반적으로 로깅에 사용되는 것을 확인했다고 하네요. 또한, 중간 정도의 크기의 애플리케이션이라도 코드에 수천 개의 로깅 문을 포함하기에 그것들을 효율적이고 간편하게 관리하기 위한 도구가 필요했습니다. Logback은 프로그래밍으로 또는 XML이나 Groovy 포맷의 설정 스크립트 파일을 통해서 설..