Your SlideShare is downloading. ×
0
logback 세미나 발표자료
logback 세미나 발표자료
logback 세미나 발표자료
logback 세미나 발표자료
logback 세미나 발표자료
logback 세미나 발표자료
logback 세미나 발표자료
logback 세미나 발표자료
logback 세미나 발표자료
logback 세미나 발표자료
logback 세미나 발표자료
logback 세미나 발표자료
logback 세미나 발표자료
logback 세미나 발표자료
logback 세미나 발표자료
logback 세미나 발표자료
logback 세미나 발표자료
logback 세미나 발표자료
logback 세미나 발표자료
logback 세미나 발표자료
logback 세미나 발표자료
logback 세미나 발표자료
logback 세미나 발표자료
logback 세미나 발표자료
logback 세미나 발표자료
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

logback 세미나 발표자료

6,884

Published on

logback을 소개하는 내용

logback을 소개하는 내용

Published in: Technology
0 Comments
93 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
6,884
On Slideshare
0
From Embeds
0
Number of Embeds
14
Actions
Shares
0
Downloads
140
Comments
0
Likes
93
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • SLF4J의 API를 사용한면 서브로깅라이브러리에 상관없이 일관된 로깅 코드를 작성할 수 있다.
    만일 Apache Commons Logging을 사용하다가 Log4J로 변경할 경우 최소한의 수정으로 서브로깅라이브러리를 변경할 수 있다.

    Spring은 JCL 을 사용
  • 예전같으면 INFO 모드로 로그를 쌓고 있다가 여러가지 이유로 DEBUG모드로 로그를 쌓고 싶을때 
    설정화일을 변경하고 서버를 재기동해야 했습니다.
    하지만 LOGBACK에서는 설정을 바꾸면 주기적으로 변경사항이 있는지 체크하여 자동으로 설정파일의
    내용을 reloading 하여 변경합니다.
  • 저역시 하루에 몇기가씩 로그가 쌓이는(INFO인데도...) 서버를 운영중입니다.
    그래서 그전에 했던 방법은 주기적으로 하루전의 로그파일을 압축해서 보관하는 스크립트를 작성하여
    crontab으로 스케줄링하여 사용하고 있었습니다.
    하지만 logback에서는 스스로 이러한 처리를 할수있는 옵션을 제공합니다.



    즉 size 단위로 한다고 하면 90개가 넘어가게 되면 옛날 것부터 삭제합니다.
    그리고 백업을 SIZE 단위가 아니고 매일 단위로 백업을 한다면 위와 같은 경우에는 
    90일동안 보관하다가 삭제를 하게 됩니다.
    (정확히 말하자면 90개가 넘어가게 되면 옛날 것부터 삭제).
    그리고 만일 매월 단위로 백업을 한다면 90개월후에 삭제되겠지요.

  • Transcript

    • 1. 1 언제까지 Log4J 쓸래? Logback을 써봐 핀스정보기술 이정근 cjred77@gmail.com http://cjred.net http://blog.cjred.net
    • 2. INDEX 2 1. Log4j는 오래됐어! 2. Slf4j는 알지? 3. Logback 도 알아? 4. Logback 에는 이런 기능도 있어! 5. Log4j2 도 있다네~
    • 3. 3 Log4j 는 오래됐어!
    • 4. 4 1. Log4j는 오래됐어! 출처: <http://www.takipiblog.com/2013/11/26/githubs-10000-most-popular-java-projects-here-are-the-top-libraries- they-use/>
    • 5. 5 1. Log4j는 오래됐어! http://archive.apache.org/dist/logging/log4j/ 1.2버젼이 2004년도부터 개발(정식최종버전 1.2.17) Log4j 2.x 는 아직 정식버전없음
    • 6. 6 1. Log4j는 오래됐어! logger.debug("MSG : " + msg1 + ", " + msg2); If(logger.isDebugEnabled()){ logger.debug("MSG : " msg1 + ", " + msg2); } Slf4j의 경우 logger.debug("MSG : {} , {}", msg1, msg2);
    • 7. 7 Slf4j 는 알지?
    • 8. 8 2. Slf4j는 알지? Façade 디자인 패턴은 복잡한 서브시스템의 인터페이스를 간단하고 통일된 인터페이스로 단순화시켜준다. 장점 • 서브시스템의 컴포넌트로 부터 클라이언트를 격리하여 클라이언 트가 쉽게 서브시스템을 이용할 수 있다. • 서브시스템과 클라이언트 사이의 의존성을 낮춘다. • Façade 패턴을 사용한다고 해도 필요한 경우에 따라 서브시스템에 직접 접근할 수도 있다. http://sourcemaking.com/design_patterns/facade
    • 9. 9 2. Slf4j는 알지?
    • 10. 10 2. Slf4j는 알지?
    • 11. 11 Logback 은 알아?
    • 12. 12 3. Logback 은 알아? 널리 알려진 Log4j의 개발자인 Ceki Gulcu 라는 개발자가 기존 Log4j를 대체하기 위하여 SLF4J와 LogBack을 함께 개발하였음.
    • 13. 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>
    • 14. 14 3. Logback 은 알아? Dependencies slf4j-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>
    • 15. 15 3. Logback 은 알아? LogBack의 주요 구성요소 Logger : 실제 로깅을 수행하는 구성요소로 Level 속성을 통해서 출력할 로그 의 레벨을 조절 Appender : 로그 메시지가 출력될 대상을 결정하는 요소 Encoder : Appender에 포함되어 사용자가 지정한 형식으로 표현 될 로그메 시지를 변환하는 역할을 담당하는 요소 설정화일 XML을 이요한 설정방법 : logback.xml로 설정 파일을 작성 후 해당 파일을 클래스패스에 위치시킨다. Groovy 언어를 이요한 설정방법 : Logback.groovy 로 설정 파일 작성 후 해 당 파일을 클래스패스에 위치시킨다. log4j.properties 를 logback.xml 로 자동으로 변환해주는 웹변환기 http://logback.qos.ch/translator/
    • 16. 16 Logback 에는 이런 기능도 있어!
    • 17. 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
    • 18. 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) </fileNamePattern> <maxHistory>90</maxHistory> </rollingPolicy> .... </appender> fileNamePattern : 마지막 확장자를 zip 이나 gz 로 지정하면 자동으로 압축 maxHistory : 남겨놓을 로그파일의 갯수 출처: <http://blog.cjred.net/240> http://logback.qos.ch/reasonsToSwitch.html
    • 19. 19 Log4j 2 도 있다네~
    • 20. 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.html http://happy2v.egloos.com/viewer/887190
    • 21. 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
    • 22. 22 5. Log4j 2 도 있다네~ 발표자의 개인적인 생각! - Logback을 먼저 사용해보세요. 이유 - Log4j 2 는 아직 개발단계 - Logback는 Log4j와 Slf4j를 만든사람 - 발표자가 Logback 을 사용
    • 23. 23 하나 더
    • 24. 24 하나 더 http://jira.qos.ch/browse/LOGBACK-969 https://github.com/qos-ch/logback/pull/189 https://github.com/qos-ch/logback/commit/dec77397c https://github.com/qos-ch/logback/commit/e64dc7a5c30dd http://jira.qos.ch/browse/LOGBACK-971 https://github.com/qos-ch/logback/pull/191 https://github.com/qos- ch/logback/commit/469e07b3e1e19792f5026719c
    • 25. THANK YOU!!! 25

    ×