CodeGym /ํ–‰๋™ /All lectures for KO purposes /Log4j์˜ ๋กœ๊ทธ ํ•„ํ„ฐ

Log4j์˜ ๋กœ๊ทธ ํ•„ํ„ฐ

All lectures for KO purposes
๋ ˆ๋ฒจ 1 , ๋ ˆ์Šจ 951
์‚ฌ์šฉ ๊ฐ€๋Šฅ

5.1 ํ•„ํ„ฐ ๋ชฉ๋ก

๋กœ๊ฑฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ”์‹œ์ง€ ํ•„ํ„ฐ๋ง์„ ๋งค์šฐ ๋ฉ‹์ง€๊ฒŒ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ๊ทธ๋Š” ๋ชจ๋“  ์ข…๋ฅ˜์˜ ๋งค๊ฐœ ๋ณ€์ˆ˜๊ฐ€ ์žˆ๋Š” ์ˆ˜์‹ญ ๊ฐœ์˜ ํ•„ํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ ํ‘œ๋Š” ๊ฐ€์žฅ ์ธ๊ธฐ์žˆ๋Š” ๊ฒƒ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

ํ•„ํ„ฐ ์„ค๋ช…
1 ๋ฒ„์ŠคํŠธ ํ•„ํ„ฐ ์ง€์ •๋œ ๋กœ๊น… ์ˆ˜์ค€์— ๋Œ€ํ•ด ์ดˆ๋‹น ๋ฉ”์‹œ์ง€ ๋นˆ๋„๋ฅผ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
2 ๋ณตํ•ฉ ํ•„ํ„ฐ ์—ฌ๋Ÿฌ ์ˆœ์ฐจ ํ•„ํ„ฐ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์‚ผ ๋™์  ์ž„๊ณ„๊ฐ’ ํ•„ํ„ฐ ๋กœ๊ทธ์—์„œ ํŠน์ • ์ •๋ณด๊ฐ€ ๋ฐœ๊ฒฌ๋˜๋ฉด ์ƒ์„ธ ๋กœ๊น…์„ ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
4 ๋งต ํ•„ํ„ฐ ์—ฌ๋Ÿฌ ๋งค๊ฐœ๋ณ€์ˆ˜์—์„œ ํ•„ํ„ฐ์— ๋Œ€ํ•œ ๋ณต์žกํ•œ ๋…ผ๋ฆฌ์‹์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
5 ๋งˆ์ปค ํ•„ํ„ฐ ํƒœ๊ทธ๋กœ ๋ฉ”์‹œ์ง€๋ฅผ ํ•„ํ„ฐ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํƒœ๊ทธ๋Š” ๋จผ์ € ์ด๋ฒคํŠธ ๋กœ๊น… ์ค‘์— ์ถ”๊ฐ€๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
6 ์ •๊ทœ์‹ ํ•„ํ„ฐ ๋งˆ์Šคํฌ(์ •๊ทœ์‹)๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
7 ๊ตฌ์กฐํ™”๋œ ๋ฐ์ดํ„ฐ ํ•„ํ„ฐ ํŠน์ • ๋ฐ์ดํ„ฐ์˜ ์กด์žฌ ์—ฌ๋ถ€์— ๋”ฐ๋ผ ๋ฉ”์‹œ์ง€๋ฅผ ํ•„ํ„ฐ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
8 ThreadContextMapFilter ํ˜„์žฌ ์Šค๋ ˆ๋“œ์˜ ์ปจํ…์ŠคํŠธ์—์„œ ๊ฐ€์ ธ์˜จ ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•„ํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
9 ์ž„๊ณ„๊ฐ’ ํ•„ํ„ฐ ๋กœ๊ทธ ๋ฉ”์‹œ์ง€ ์ˆ˜์ค€์— ๋”ฐ๋ผ ๋กœ๊น…์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.
10 ์‹œ๊ฐ„ ํ•„ํ„ฐ ํŠน์ • ์‹œ๊ฐ„์— ํ•„ํ„ฐ๋ฅผ ์ผœ๊ณ  ๋Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•„๋ž˜์—์„œ ์šฐ๋ฆฌ๋Š” ๊ทธ๋“ค ์ค‘ ์„ธ ๊ฐ€์ง€์— ๋Œ€ํ•ด์„œ๋งŒ ์ด์•ผ๊ธฐ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ณต์‹ ์›น ์‚ฌ์ดํŠธ ์—์„œ ์ด๋Ÿฌํ•œ ํ•„ํ„ฐ์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค .

5.2 ์‹œ๊ฐ„ ํ•„ํ„ฐ

ํ•„ํ„ฐ๋ฅผ ์‚ฌ์šฉ TimeFilterํ•˜๋ฉด ํŠน์ • ์‹œ๊ฐ„์— ํ•„ํ„ฐ๋ฅผ ์ผœ๊ณ  ๋Œ ์ˆ˜ ์žˆ์œผ๋ฉฐ 5๊ฐœ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

1 ์‹œ์ž‘ ํ˜•์‹์˜ ๋กœ๊น… ์‹œ์ž‘ ์‹œ๊ฐ„HH:mm:ss
2 ๋ ๋กœ๊ทธ์˜คํ”„ ์‹œ๊ฐ„ ํ˜•์‹HH:mm:ss
์‚ผ ์‹œ๊ฐ„๋Œ€ ์‹œ๊ฐ„๋Œ€๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
4 ๊ฒฝ๊ธฐ ์ค‘ ํ•„ํ„ฐ ์กฐ๊ฑด์ด ์ฐธ์ธ ๊ฒฝ์šฐ ๊ธฐ๋กํ•˜๋Š” ๋ฐฉ๋ฒ• . ์–ด์ฉŒ๋ฉด ACCEPT, DENY๋˜๋Š” NEUTRAL. ๊ธฐ๋ณธ NEUTRAL.
5 ๋ฏธ์Šค๋งค์น˜ ํ•„ํ„ฐ ์กฐ๊ฑด์ด false ์ธ ๊ฒฝ์šฐ ๊ธฐ๋กํ•˜๋Š” ๋ฐฉ๋ฒ• . ์–ด์ฉŒ๋ฉด ACCEPT, DENY๋˜๋Š” NEUTRAL. ๊ธฐ๋ณธ NEUTRAL.

๋งค์ผ ์˜ค์ „ 5์‹œ์— ๋กœ๊น…์„ ์ผœ๊ณ  ์˜ค์ „ 5์‹œ 30๋ถ„์— ๋„๋Š” ํ•„ํ„ฐ๋ฅผ ์„ค์ •ํ•ด ๋ด…์‹œ๋‹ค. ์ „์ฒด ํ•„ํ„ฐ ๊ตฌ์„ฑ์˜ ์˜ˆ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.


    <?xml version="1.0" encoding="UTF-8"?>
    <Configuration status="warn" name="MyApp" packages="">
    <Appenders>
        <RollingFile name="RollingFile" fileName="logs/app.log" filePattern="logs/app-%d{MM-dd-yyyy}.log.gz">
 <TimeFilter start="05:00:00" end="05:30:00" onMatch="ACCEPT" onMismatch="DENY"/>
        <PatternLayout>
            <pattern>%d %p %c{1.} [%t] %m%n</pattern>
        </PatternLayout>
        <TimeBasedTriggeringPolicy />
        </RollingFile>
    </Appenders>
    <Loggers>
        <Root level="error">
        <AppenderRef ref="RollingFile"/>
        </Root>
    </Loggers>
    </Configuration>

5.3 ์ •๊ทœ์‹ ํ•„ํ„ฐ

ํ•„ํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด RegexFilter๋ฉ”์‹œ์ง€ ํ•„ํ„ฐ๋ง์„ ์œ„ํ•œ ๋งˆ์Šคํฌ(์ •๊ทœ์‹)๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํ•„ํ„ฐ์—๋Š” 4๊ฐœ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

1 ์ •๊ทœ์‹ ๋ฉ”์‹œ์ง€๋ฅผ ํ•„ํ„ฐ๋งํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋งˆ์Šคํฌ์ธ ์ •๊ทœ์‹์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.HH:mm:ss
2 useRawMsg ๋งˆ์Šคํฌ๋Š” ์„œ์‹ ์ง€์ • ์ „(true) ๋˜๋Š” ์„œ์‹ ์ง€์ • ํ›„(false) ๋ฉ”์‹œ์ง€์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.
์‚ผ ๊ฒฝ๊ธฐ ์ค‘ ํ•„ํ„ฐ ์กฐ๊ฑด์ด ์ฐธ์ธ ๊ฒฝ์šฐ ๊ธฐ๋กํ•˜๋Š” ๋ฐฉ๋ฒ• . ์–ด์ฉŒ๋ฉด ACCEPT, DENY๋˜๋Š” NEUTRAL. ๊ธฐ๋ณธ NEUTRAL.
4 ๋ฏธ์Šค๋งค์น˜ ํ•„ํ„ฐ ์กฐ๊ฑด์ด false ์ธ ๊ฒฝ์šฐ ๊ธฐ๋กํ•˜๋Š” ๋ฐฉ๋ฒ• . ์–ด์ฉŒ๋ฉด ACCEPT, DENY๋˜๋Š” NEUTRAL. ๊ธฐ๋ณธ NEUTRAL.

codegym๋ผ๋Š” ๋‹จ์–ด๊ฐ€ ํฌํ•จ๋œ ๋ฉ”์‹œ์ง€๋งŒ ํ—ˆ์šฉํ•˜๋Š” ํ•„ํ„ฐ๋ฅผ ์„ค์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ „์ฒด ํ•„ํ„ฐ ๊ตฌ์„ฑ์˜ ์˜ˆ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.


    <?xml version="1.0" encoding="UTF-8"?>
    <Configuration status="warn" name="MyApp" packages="">
    <Appenders>
        <RollingFile name="RollingFile" fileName="logs/app.log"   filePattern="logs/app-%d{MM-dd-yyyy}.log.gz">
 <RegexFilter regex=".* codegym .*" onMatch="ACCEPT" onMismatch="DENY"/>
        <PatternLayout>
            <pattern>%d %p %c{1.} [%t] %m%n</pattern>
        </PatternLayout>
        <TimeBasedTriggeringPolicy />
        </RollingFile>
      </Appenders>
    <Loggers>
        <Root level="error">
        <AppenderRef ref="RollingFile"/>
        </Root>
    </Loggers>
    </Configuration>

5.4 ์ž„๊ณ„๊ฐ’ ํ•„ํ„ฐ

ThresholdFilter ํ•„ํ„ฐ๋ฅผ ์‚ฌ์šฉ ํ•˜๋ฉด ๋ฉ”์‹œ์ง€ ์ˆ˜์ค€๋ณ„๋กœ ํ•„ํ„ฐ๋ง์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 3๊ฐœ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋งŒ ์žˆ์Šต๋‹ˆ๋‹ค.

1 ์ˆ˜์ค€ ๋ฉ”์‹œ์ง€ ๋กœ๊น… ์ˆ˜์ค€์˜ ์ด๋ฆ„์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค: ERROR, DEBUG, โ€ฆ
2 ๊ฒฝ๊ธฐ ์ค‘ ํ•„ํ„ฐ ์กฐ๊ฑด์ด ์ฐธ์ธ ๊ฒฝ์šฐ ๊ธฐ๋กํ•˜๋Š” ๋ฐฉ๋ฒ• . ์–ด์ฉŒ๋ฉด ACCEPT, DENY๋˜๋Š” NEUTRAL. ๊ธฐ๋ณธ NEUTRAL.
์‚ผ ๋ฏธ์Šค๋งค์น˜ ํ•„ํ„ฐ ์กฐ๊ฑด์ด false ์ธ ๊ฒฝ์šฐ ๊ธฐ๋กํ•˜๋Š” ๋ฐฉ๋ฒ• . ์–ด์ฉŒ๋ฉด ACCEPT, DENY๋˜๋Š” NEUTRAL. ๊ธฐ๋ณธ NEUTRAL.

์ˆ˜์ค€์˜ ๋ฉ”์‹œ์ง€๋งŒ ํ—ˆ์šฉํ•˜๋Š” ํ•„ํ„ฐ๋ฅผ ์„ค์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค DEBUG. ์ „์ฒด ํ•„ํ„ฐ ๊ตฌ์„ฑ์˜ ์˜ˆ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.


    <?xml version="1.0" encoding="UTF-8"?>
    <Configuration status="warn" name="MyApp" packages="">
    <Appenders>
        <RollingFile name="RollingFile" fileName="logs/app.log" filePattern="logs/app-%d{MM-dd-yyyy}.log.gz">
 <ThresholdFilter level="DEBUG" onMatch="ACCEPT" onMismatch="DENY"/>
        <PatternLayout>
            <pattern>%d %p %c{1.} [%t] %m%n</pattern>
        </PatternLayout>
        <TimeBasedTriggeringPolicy />
        </RollingFile>
    </Appenders>
    <Loggers>
        <Root level="error">
        <AppenderRef ref="RollingFile"/>
        </Root>
    </Loggers>
    </Configuration>
์ฝ”๋ฉ˜ํŠธ
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION