예제로 쉽게 배우는 log4j 기초 활용법
TRANSCRIPT
![Page 1: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/1.jpg)
문서타이틀 영역 | 2007. 02 . 23
기획 : 마케팅 팀 이 정 민
커뮤니티개발 1팀한 오 석 | 2009. 03. 12
log4j 기초 사용법예제로 쉽게 배우는
![Page 2: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/2.jpg)
Log4j – 세미나목표
2
Log를 기록하는데 있어서, 동작 원리를 인지하고 친숙하게 사용할 수 있는 계기를 마련한다.
1. Log4j의 구성요소를 중심으로 젂체적인 동작 원리를 이해한다.2. 기본적인 구현 예제를 통해, Log4j script를 작성하는 방법에 대한 이해도를 높인다.3. Log4j의 설정 방법을 통해 업무에 쉽게 적용할 수 있는 지식을 젂한다.4. Log4j의 부가 기능을 젂하여 Log4j를 다양한 방법으로 활용할 수 있는 계기를 마련한다.5. 효율적인 Log4j의 활용법을 설명함으로써 Log작성에 따른 부작용을 최소화 할 수 있는
방법을 제시한다.
구성요소, 동작원리=> C&P는 그만!!
log4j.properties 의 요소에는 무엇이 있고 왜 그렇게 설정하는지 이해
log4j.xml => xml 설정 방식에 흥미를 느껴보자
여러 가지 부가기능=> 이런 것도 있으니 혹시 유용한 곳이 생각나면 적용해보자.
![Page 3: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/3.jpg)
Log4j - 목차
3
1. Log4j 소개
2. Log4j 구성요소와 동작원리
3. Logger 와 Level
4. Appenders
5. Layouts
6. Configuration- log4j.properties, log4j.xml
7. Initialization
8. MDC & NDC
9. Log4j의 부가기능- Filter, Object Rendering
10. Log4j 성능 이슈
![Page 4: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/4.jpg)
4
![Page 5: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/5.jpg)
Log
5
What is logging?
LOG : The State of the System at Runtime
![Page 6: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/6.jpg)
Log
6
Logging Must Be …
Logging must be Systematic
Logging must be Controlled
Logging information must represent an application’s state
![Page 7: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/7.jpg)
Log
7
Benefits of LoggingProblem DiagnosisQuick DebuggingEasy MaintenanceHistoryCost & Time Effective
Disadvantages of LoggingRuntime Overhead due to generation of logging & the device I/OExtra codeBadly Logging can cause confusionBadly Logging can seriously affect the performance
Benefits & Disadvantages
![Page 8: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/8.jpg)
Log
8
How Logging Works
![Page 9: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/9.jpg)
Log
9
Popular Java-Based Logging APIs
Apache log4j (org.apache.log4j) : since 1999, Java 1.2 이상 권장: Easy Control, Rich Configuration, Variaty of Destination
Java Logging API ( java.util.logging): since 2002, Java 1.4 이상 사용가능: 상대적으로 적은 Destination(Buffer, Console, File Socket): 상대적으로 적은 Format (XML, Simple Text, AWT)
Common Logging API : 자체 로그 생성 기능 없음: Logging API 의 통합을 목적으로 만들어진 API
![Page 10: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/10.jpg)
10
![Page 11: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/11.jpg)
Log4j 구성요소와 동작원리
11
Main Components of Log4j
Logger : log4j의 중심 클래스: 로그의 그룹화, 레벨 설정, 로깅 이벤트 발생
Appenders : 로그의 출력 위치(Destination)를 지정(Console, File, JMS, Mail. DB …. )
Layouts : 로그의 출력 포맷을 지정(Text, Html, Xml … )
![Page 12: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/12.jpg)
Log4j 구성요소와 동작원리 – Log Level
12
LEVEL
LEVEL DESCRIPTION
OFF 모든 로그를 출력을 하지 않음
FATAL 어플리케이션을 종료시킬 정도의 치명적인 에러
ERROR 어플리케이션 동작 중 실행 지속 가능한 에러
WARN 간단한 결점, 예상치 못한 행동으로 주의할 필요가 있는 경우 사용
INFO 정상적인 어플리케이션 동작 상태에서의 일반적인 정보
DEBUG 개발 단계에서 디버깅에 필요한 로그가 필요할 때 사용
TRACE DEBUG 단계에 비하여 좀 더 세세한 정보를 필요로 할 때 사용
ALL 모든 레벨의 로그 정보를 기록
Priority : ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF
![Page 13: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/13.jpg)
Log4j 구성요소와 동작원리 – Sequence Diagram
The Flow of Logger
13
![Page 14: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/14.jpg)
Log4j 구성요소와 동작원리 - Logger
14
Logger rootLogger = Logger.getRootLogger();Logger infoLogger = Logger.getLogger(“cafe.info”);Logger logger = Logger.getLogger(CafeInfo.class);
root
cafe
infobbs
UserInfo CafeInfo
Name Hierarchy
Configurator 에서 만든 로거 객체를 사용
package
Class
![Page 15: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/15.jpg)
Log4j 구성요소와 동작원리 - Logger
15
Logger 의 상속
![Page 16: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/16.jpg)
Log4j 구성요소와 동작원리 - Logger
16
![Page 17: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/17.jpg)
Log4j 구성요소와 동작원리 - Logger
17
![Page 18: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/18.jpg)
Log4j 구성요소와 동작원리 - Log Level
18
Log 레벨 지정
![Page 19: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/19.jpg)
Log4j 구성요소와 동작원리 - Log Level
19
Log 레벨 지정
![Page 20: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/20.jpg)
Log4j 구성요소와 동작원리 – Logger
20
Exception
![Page 21: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/21.jpg)
Log4j 구성요소와 동작원리
21
![Page 22: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/22.jpg)
22
![Page 23: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/23.jpg)
Appenders - Hierarchy
23
<<interface>>Appender
AppenderSkelton
Customizing
WriterAppender
출력
ConsoleAppender
화면출력
FileAppender
파일 출력
DailyRollingFileAppender
날짜 간격 파일 출력
RollingFileAppender
크기 간격 파일 출력
JMSAppender
JMS
AsyncAppender
non block
SMTPAppender
JDBCAppender
DB
Appender Hierarchy
![Page 24: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/24.jpg)
Appenders - WriterAppender
24
WriterAppender- Writer 객체에 로그를 남기는 Appender
![Page 25: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/25.jpg)
Appenders - ConsoleAppender
25
Target : System.out 또는 System.err 둘 중 하나 선택Follow : true인경우 SystemOutStream 객체에 저장;activateOptions : appender를 활성화
ConsoleAppender- System.out , System.err(콘솔) 에 로그를 남기는 Appender
![Page 26: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/26.jpg)
Appenders - FileAppender
26
FileAppender- File에 로그를 남기는 Appender
File : 파일 선택Append : 이어 쓸 것인지 선택BufferdIO : BufferedOutputStream 을 사용할 것인지 선택BufferdSize : Buffer size 지정
![Page 27: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/27.jpg)
Appenders - RollingFileAppender
27
my.log
my.log my.log.1
my.log my.log.1 my.log.2
LOG
LOG
LOG
RollingFileAppender- 크기에 따라 File명을 변환하며 로그를 남기는 Appender
MaxFileSize : MB, KB, GB 단위로 설정MaximumFileSize : Byte단위로 설정 가능MaxBackupIndex : Index를 얼마까지 늘릴지 지정
![Page 28: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/28.jpg)
Appenders - DailyRollingFileAppender
28
DailyRollingFileAppender- 날짜에 따라 File 명을 변환하며 로그를 남기는 Appender
DatePattern : 로그에 붙는 시간 형식을 지정Year (yyyy)Month (MM)Hour (HH)Minute (mm)Second (ss)am. pm. (a)
![Page 29: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/29.jpg)
Appenders - AsyncAppender
29
AsyncAppender-Loggin Event 발생시 Thread를 생성하여 로그를 남기는 Appender단독으로 사용 될 수 없고 다른 Appender를 참조해야함 (log4j xml설정방식에서만 사용 가능)
![Page 30: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/30.jpg)
Appenders - SMTPAppender
30
SMTPAppender- 로그를 e-mail로 젂달하는 Appender
![Page 31: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/31.jpg)
Appenders - Customizing
31
AppenderSkelton - CustomSmsAppender
Setter Method 작성setCaller(String caller)setUrl(String url)
…
![Page 32: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/32.jpg)
Appenders - Customizing
32
Appender Customizing Test
![Page 33: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/33.jpg)
33
![Page 34: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/34.jpg)
Layouts - Hierarchy
34
Layout Hierarchy
Layout
XMLLayout
TTCCLayout
DateLayout PatternLayoutHTMLLayout SimpleLayout
![Page 35: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/35.jpg)
Layouts - TTCCLayout
35
TTCCLayout-Time [Thread] Catecory – Context information
![Page 36: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/36.jpg)
Layouts - XMLLayout
36
XMLLayout
![Page 37: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/37.jpg)
Layouts - HTMLLayout
37
HTMLLayout
![Page 38: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/38.jpg)
Layouts - HTMLLayout
38
MailAppender + HTMLLayout
![Page 39: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/39.jpg)
ConversionPattern : Pattern 설정
39
Layouts – Pattern Layout
Pattern Layout
![Page 40: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/40.jpg)
ConversionPattern : Pattern 설정
40
Layouts – Pattern Layout
Pattern Layout
![Page 41: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/41.jpg)
41
Layouts – Pattern Layout
Pattern Description
%p LEVEL (로거 레벨)
%m Message (메시지)
%d{} Date (날짜 , 시간) – 연: yyyy, 월: MM, 일: dd, 시: HH, 분: mm, 초: ss, am.pm: a
%n New line (개행문자)
%c Catecory (로거 명)
%C Class (로깅이벤트가 발생된 클래스명)
%M Method (로깅이벤트가 발생된 메소드명)
%t Thread (로깅이벤트가 발생된 쓰레드명)
%F File (로깅이벤트가 발생된 파일명)
%l Location (로깅이벤트가 발생한 location정보)
%L Line (로깅이벤트가 발생한 라인의 번호)
%r Run time (어플리케이션 시작 이후 로깅이벤트가 발생한 시점의 시간) – millisecond
%X MDC(Mapped Diagnostic Context)
%x NDC(Nested Diagnostic Context)
%% %출력
Patterns
![Page 42: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/42.jpg)
Layouts – Layout Customizing
42
LoggingEvent – Log 가 씌어질때 마다 생성되며, 해당 log에 대한 정보를 가짐
Layout Customizing
![Page 43: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/43.jpg)
Layouts – Layout Customizing
43
Layout Customizing
![Page 44: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/44.jpg)
44
![Page 45: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/45.jpg)
Configuration - Configurator
45
BasicConfigurator
PropertyConfigurator
DOMConfigurator
Configurator
- Logger 객체 생성, Layout, Appender를 설정
![Page 46: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/46.jpg)
Configuration - BasicConfigurator
46
BasicConfigurator
- rootLogger 생성, 기본 Appender, Layout 설정
![Page 47: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/47.jpg)
Configuration - PropertyConfigurator
47
PropertyConfigurator
- log4j.properties 을 이용하여 설정
![Page 48: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/48.jpg)
Configuration - PropertyConfigurator
48
log4j.properties
![Page 49: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/49.jpg)
Configuration - PropertyConfigurator
49
log4j.properties
![Page 50: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/50.jpg)
Configuration - PropertyConfigurator
50
log4j.properties
![Page 51: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/51.jpg)
Configuration – log4j.properties
51
![Page 52: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/52.jpg)
Configuration - DOMConfigurator
52
DOMConfigurator
- log4j.xml 을 이용하여 설정
![Page 53: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/53.jpg)
Configuration - DOMConfigurator
53
log4j.xml
![Page 54: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/54.jpg)
Configuration – log4j.xml
54
![Page 55: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/55.jpg)
Configuration – log4j.xml
55
![Page 56: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/56.jpg)
Configuration – log4j.xml
56
![Page 57: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/57.jpg)
Configuration – log4j.xml (AsyncAppender)
57
![Page 58: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/58.jpg)
Configuration – Appender Customizing
58
CustomSMSAppender
Setter Method 작성setCaller(String caller)setUrl(String url)
…
![Page 59: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/59.jpg)
Configuration – Appender Customizing
59
CustomSMSAppender – log4j.properties
![Page 60: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/60.jpg)
Configuration – Appender Customizing
60
CustomSMSAppender – log4j.xml
![Page 61: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/61.jpg)
61
![Page 62: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/62.jpg)
Initialization
62
1. Default Initialization
2. Initialization in Java Application
3. Initialization in Tomcat
![Page 63: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/63.jpg)
Initialization – Default Initialization
63
WEB-INF
libclasses web.xml
log4j.properties log4j.xml
WEB-INF/classes/log4j.propertiesWEB-INF/classes/log4j.xml
Default Initialization
![Page 64: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/64.jpg)
Initialization – Initialization in Java Application
64
BasicConfigurator.configure()
PropertyConfigurator.configure(“dir/log4j.properties”);
DOMConfigurator.configure(“dir/log4j.xml”);
Embed Code
Initialization in Java Application
![Page 65: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/65.jpg)
Initialization – Initialization in Tomcat
65
Initialization in Tomcat
conf/catalina.property
log4j.configuration=$DIR/log4j.priperties
![Page 66: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/66.jpg)
66
![Page 67: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/67.jpg)
MDC (Mapped Diagnostic Context)
67
MDC (Mapped Diagnostic Context)
- Log에 출력할 정보를 Map에 저장하여 사용
![Page 68: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/68.jpg)
MDC (Mapped Diagnostic Context)
68
MDC (Mapped Diagnostic Context)
![Page 69: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/69.jpg)
MDC (Mapped Diagnostic Context)
69
Servlet 1
Servlet 2
![Page 70: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/70.jpg)
NDC (Nested Diagnostic Context)
70
NDC (Nested Diagnostic Context)
![Page 71: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/71.jpg)
NDC (Nested Diagnostic Context)
71
NDC (Nested Diagnostic Context)
![Page 72: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/72.jpg)
72
![Page 73: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/73.jpg)
Log4j 구성요소와 동작원리
The Flow of Logger
73
![Page 74: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/74.jpg)
Log4j 부가기능 - Filter
74
Filter
DenyAllFilter
모든 로거를거부
LevelRangeFilter
레벨 지정간격 사이의 로그를 필터링
LevelMatchFilter
레벨에 맞는로그를 필터링
StringMatchFilter
스트링에 매치되는로그를 필터링
Filter Hierarchy
![Page 75: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/75.jpg)
Log4j 부가기능 - Filter
75
ERROR 는 찍지 않는다.2가 붙은 것은 모두 찍는다.나머지 로그는 모두 찍지않는다.
![Page 76: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/76.jpg)
Log4j 부가기능 - Filter
76
ERROR 는 찍지 않는다.2가 붙은 것은 모두 찍는다.나머지 로그는 모두 찍지않는다.
![Page 77: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/77.jpg)
Log4j 부가기능 - Filter
77
ACCEPT : 출력DENY : 출력하지 않음NEUTRAL : 다음 필터로 넘김
Filter
![Page 78: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/78.jpg)
Log4j 부가기능 - Object Rendering
78
Object Rendering
![Page 79: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/79.jpg)
Log4j 부가기능 - Object Rendering
79
Rendered Class : Object Rendering 이 필요한 클래스
Rendering Class : Rendered Class 를 Rendering 할 수 있는 클래스
![Page 80: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/80.jpg)
Log4j 부가기능 - Object Rendering
80
In log4j.properties
In log4j.xml
Object Rendering
![Page 81: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/81.jpg)
Log4j 부가기능 - Object Rendering
81
Object Rendering
![Page 82: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/82.jpg)
Log4j 성능 이슈
82
LoggingEvent를 발생시키는 시간을 절약하기 위해 아래의 메소드를 사용
logger.isInfoEnable()logger.isDebugEnable()logger.isTraceEnable()
Log4j 성능 이슈
![Page 83: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/83.jpg)
Log4j 성능 이슈
83
아래의 ConversionPattern 은 프로그램 실행 속도를 느리게 하는 옵션으로반드시 필요한 경우가 아니면 사용을 자제
%d : 날짜 및 시간 출력%l : Log Location%C : Logging event 가 발생한 클래스명%M : Logging event 가 발생한 메소드명%F : Logging event 가 발생한 파일명%L : Logging event 가 발생한 라인
Log4j 성능 이슈
![Page 84: 예제로 쉽게 배우는 Log4j 기초 활용법](https://reader034.vdocuments.mx/reader034/viewer/2022052213/58887b131a28ab34788b63a7/html5/thumbnails/84.jpg)
감사합니다