logback 세미나 발표자료

25
1 언언언언 Log4J 언언 ? Logback 언 언언 핀핀핀핀핀핀 핀핀핀 [email protected] http://cjred.net http://blog.cjred.net

Upload: jeonggeun-lee

Post on 28-Nov-2014

4.745 views

Category:

Technology


6 download

DESCRIPTION

logback을 소개하는 내용

TRANSCRIPT

Page 1: logback 세미나 발표자료

1

언제까지 Log4J 쓸래 ?Logback 을 써봐

핀스정보기술 이정근[email protected]

http://cjred.nethttp://blog.cjred.net

Page 2: logback 세미나 발표자료

INDEX

2

1. Log4j 는 오래됐어 !

2. Slf4j 는 알지 ?

3. Logback 도 알아 ?

4. Logback 에는 이런 기능도 있어 !

5. Log4j2 도 있다네 ~

Page 3: logback 세미나 발표자료

3

Log4j 는 오래됐어 !

Page 4: logback 세미나 발표자료

4

1. Log4j 는 오래됐어 !

출처 : <http://www.takipiblog.com/2013/11/26/githubs-10000-most-popular-java-projects-here-are-the-top-libraries-they-use/>

Page 5: logback 세미나 발표자료

5

1. Log4j 는 오래됐어 !

http://archive.apache.org/dist/logging/log4j/

1.2 버젼이 2004 년도부터 개발 ( 정식최종버전 1.2.17)Log4j 2.x 는 아직 정식버전없음

Page 6: logback 세미나 발표자료

6

1. Log4j 는 오래됐어 !

logger.debug("MSG : " + msg1 + ", " + msg2); If(logger.isDebugEnabled()){ logger.debug("MSG : " msg1 + ", " + msg2);} Slf4j 의 경우logger.debug("MSG : {} , {}", msg1, msg2);

Page 7: logback 세미나 발표자료

7

Slf4j 는 알지 ?

Page 8: logback 세미나 발표자료

8

2. Slf4j 는 알지 ?

Façade 디자인 패턴은 복잡한 서브시스템의 인터페이스를 간단하고 통일된 인터페이스로 단순화시켜준다 . 장점 • 서브시스템의 컴포넌트로 부터 클라이언트를 격리하여 클라이언트가

쉽게 서브시스템을 이용할 수 있다 .• 서브시스템과 클라이언트 사이의 의존성을 낮춘다 .• Façade 패턴을 사용한다고 해도 필요한 경우에 따라 서브시스템에

직접 접근할 수도 있다 . http://sourcemaking.com/design_patterns/facade

Page 9: logback 세미나 발표자료

9

2. Slf4j 는 알지 ?

Page 10: logback 세미나 발표자료

10

2. Slf4j 는 알지 ?

Page 11: logback 세미나 발표자료

11

Logback 은 알아 ?

Page 12: logback 세미나 발표자료

12

3. Logback 은 알아 ?

널리 알려진 Log4j 의 개발자인 Ceki Gulcu 라는 개발자가 기존 Log4j 를 대체하기 위하여 SLF4J 와 LogBack 을 함께개발하였음 .

Page 13: logback 세미나 발표자료

13

3. Logback 은 알아 ?

Log4j 보다 LogBack 을 사용해야되는 이유http://logback.qos.ch/reasonsToSwitch.html . log4j 에 비해 속도나 메모리 사용면에서 개선 . SLF4J 의 인터페이스를 직접 구현 . 설정파일의 Dynamic Reloading 지원 . 설정파일의 조건부 처리 기능 . 로그파일에 대한 자동압축 , 자동 삭제 기능 제공 . 런타임에 설정한 값에 따라 로그를 분리하여 처리할 수 있는 SiftingAppender 제공 . groovy 언어로 설정파일 작성 기능 . FileAppender 사용 시 다수의 JVM 이 동시에 하나의 파일에 로그를 남길 수 있는 prudent mode 를 지원 . 다양한 조건에 따른 로깅처리 여부를 결정할 수 있는 Filter 제공 출처 : <http://blog.cjred.net/240>

Page 14: logback 세미나 발표자료

14

3. Logback 은 알아 ?

Dependenciesslf4j-api.jar : slf4j 표준 인터페이스 구현체 .logback-core.jar : logback-classic 과 의존 모듈로 appender, layout 등이 구현되어 있는 모듈logback-classic.jar : LogBack 의 logger 와 SiftAppender 등이 구현되어 있는 모듈 

MAVEN<dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.7</version></dependency> <dependency><groupId>ch.qos.logback</groupId><artifactId>logback-core</artifactId><version>1.1.2</version></dependency><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.1.2</version></dependency>

Page 15: logback 세미나 발표자료

15

3. Logback 은 알아 ?

LogBack 의 주요 구성요소Logger : 실제 로깅을 수행하는 구성요소로 Level 속성을 통해서 출력할 로그의 레벨을 조절Appender : 로그 메시지가 출력될 대상을 결정하는 요소Encoder : Appender 에 포함되어 사용자가 지정한 형식으로 표현 될 로그메시지를 변환하는 역할을 담당하는 요소 설정화일XML 을 이요한 설정방법 : logback.xml 로 설정 파일을 작성 후 해당 파일을 클래스패스에 위치시킨다 .Groovy 언어를 이요한 설정방법 : Logback.groovy 로 설정 파일 작성 후 해당 파일을 클래스패스에 위치시킨다 . log4j.properties 를 logback.xml 로 자동으로 변환해주는 웹변환기http://logback.qos.ch/translator/

Page 16: logback 세미나 발표자료

16

Logback 에는 이런 기능도 있어 !

Page 17: logback 세미나 발표자료

17

4. Logback 에는 이런 기능도 있어 !

1. Dynamic Reloading 지원설정을 바꾸면 주기적으로 변경사항이 있는지 체크하여 자동으로 설정파일의내용을 reloading 하여 변경 . 방법은 <configuration scan="true" scanPeriod="30 seconds"> ..... </configuration> 30 초단위로 설정화일을 스캔 .

출처 : <http://blog.cjred.net/240> http://logback.qos.ch/reasonsToSwitch.html

Page 18: logback 세미나 발표자료

18

4. Logback 에는 이런 기능도 있어 !2. 로그파일에 대한 자동압축 , 자동 삭제기능 제공  <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender"> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern> someFileName.log.zip (or gz) </file-NamePattern><maxHistory>90</maxHistory> </rollingPolicy> .... </appender>  fileNamePattern :  마지막 확장자를 zip 이나 gz 로 지정하면 자동으로 압축maxHistory : 남겨놓을 로그파일의 갯수

출처 : <http://blog.cjred.net/240> http://logback.qos.ch/reasonsToSwitch.html

Page 19: logback 세미나 발표자료

19

Log4j 2 도 있다네 ~

Page 20: logback 세미나 발표자료

20

5. Log4j 2 도 있다네 ~

API 의 분리 - API Separation

향상된 수행력 - Improved Performance

다양한 API 들을 위한 지원 - Support for multiple APIs

환경설정의 자동적 재호출 - Automatic Reloading of Configurations

향상된 필터링 - Advanced Filtering

플러그인 구조 - Plugin Architecture

속성 지원 - Property Support

Java 6 이상버전을 요구

http://logging.apache.org/log4j/2.x/index.htmlhttp://happy2v.egloos.com/viewer/887190

Page 21: logback 세미나 발표자료

21

5. Log4j 2 도 있다네 ~

Log4j 개발자들이 말하는 Log4j2 를 쓰길 바라는 이유http://logging.apache.org/log4j/2.x/manual/index.html

성능문제 ( 비동기식 logger 들을 사용하는 경우에만 성능향상 )http://logging.apache.org/log4j/2.x/performance.html http://logging.apache.org/log4j/2.x/manual/async.html#Performance

Page 22: logback 세미나 발표자료

22

5. Log4j 2 도 있다네 ~

발표자의 개인적인 생각 !

- Logback 을 먼저 사용해보세요 .

이유

- Log4j 2 는 아직 개발단계- Logback 는 Log4j 와 Slf4j 를 만든사람- 발표자가 Logback 을 사용

Page 23: logback 세미나 발표자료

23

하나 더

Page 24: logback 세미나 발표자료

24

하나 더

http://jira.qos.ch/browse/LOGBACK-969https://github.com/qos-ch/logback/pull/189https://github.com/qos-ch/logback/commit/dec77397chttps://github.com/qos-ch/logback/commit/e64dc7a5c30dd http://jira.qos.ch/browse/LOGBACK-971https://github.com/qos-ch/logback/pull/191https://github.com/qos-ch/logback/commit/469e07b3e1e19792f5026719c

Page 25: logback 세미나 발표자료

THANK YOU!!!

25