Log4j : Log for Java
ํ๋ก๊ทธ๋จ ์์ฑ ๋์ค ๋ก๊ทธ๋ฅผ ๋จ๊ธฐ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ์๋ฐ ๊ธฐ๋ฐ ๋ก๊น ์ ํธ๋ฆฌํฐ๋ก ๋๋ฒ๊ทธ์ฉ ๋๊ตฌ๋ก ์ฃผ๋ก ์ฌ์ฉ๋๋ค.
<๊ตฌ์กฐ>
Logger(Category) | Logging ๋ฉ์์ง๋ฅผ Appender์ ์ ๋ฌํ๋ค. |
Appender | ๋ก๊ทธ์ ์ถ๋ ฅ ์์น๋ฅผ ๊ฒฐ์ ํ๋ค. (ํ์ผ / ์ฝ์ / DB ๋ฑ) |
Layout | ์ด๋ค ํ์์ผ๋ก ์ถ๋ ฅํ ๊ฒ์ธ์ง ์ถ๋ ฅ layout์ ๊ฒฐ์ ํ๋ค. |
<๋ ๋ฒจ>
FATAL > ERROR > WARN > INFO > DEBUG > TRACE | |
FATAL | ์์คํ ์ ์ผ๋ก ์ฌ๊ฐํ ๋ฌธ์ ๊ฐ ๋ฐ์ํด์ ์ดํ๋ฆฌ์ผ์ด์ ์๋์ด ๋ถ๊ฐ๋ฅํ ๊ฒฝ์ฐ๊ฐ ํด๋นํ๋ค. |
ERROR | ์์ฒญ์ ์ฒ๋ฆฌํ๋ ์ค ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ํ |
WARN | ์ฒ๋ฆฌ ๊ฐ๋ฅํ ๋ฌธ์ ์ง๋ง ํฅํ ์์คํ ์๋ฌ์ ์์ธ์ด ๋ ์ ์๋ ๊ฒฝ๊ณ ์ฑ ๋ฉ์์ง |
INFO | ๋ก๊ทธ์ธ, ์ํ ๋ณ๊ฒฝ ๋ฑ ์ ๋ณด์ฑ ๋ฉ์์ง๋ฅผ ๋ํ๋ |
DEBUG | ๊ฐ๋ฐ ์ ๋๋ฒ๊ทธ ์ฉ๋๋ก ์ฌ์ฉํ ๋ฉ์์ง๋ฅผ ๋ํ๋ |
TRACE | DEBUG๋ ๋ฒจ์ด ๊ด๋ฒ์ํ ๊ฒ์ ํด๊ฒฐํ๊ธฐ ์ํด ์์ธํ ์ํ๋ฅผ ๋ํ๋. |
<์ฃผ์ ํด๋์ค>
ConsoleAppender | ์ฝ์์ ๋ก๊ทธ ๋ฉ์์ง ์ถ๋ ฅ |
FileAppender | ํ์ผ์ ๋ก๊ทธ ๋ฉ์์ง ๊ธฐ๋ก |
RollingFileAppender | ํ์ผ ํฌ๊ธฐ๊ฐ ์ผ์ ์์ค ์ด์์ด ๋๋ฉด ๊ธฐ์กด ํ์ผ์ ๋ฐฑ์ ํ์ผ๋ก ๋ฐ๊พผ ํ ์ฒ์๋ถํฐ ๊ธฐ๋ก |
DailyRollingFileAppender | ์ผ์ ๊ธฐ๊ฐ ๋จ์๋ก ๋ก๊ทธํ์ผ์ ์์ฑํ๊ณ ๊ธฐ๋ก |
JDBCAppender |
DB์ ๋ก๊ทธ๋ฅผ ์ถ๋ ฅ. ํ์์ Driver, URL, User, Password, Sql๊ณผ ๊ฐ์ ํ๋ผ๋ฏธํฐ๋ฅผ ์ ์ํ ์ ์๋ค. |
SMTPAppender | ๋ก๊ทธ ๋ฉ์์ง๋ฅผ ์ด๋ฉ์ผ๋ก ์ ์กํ๋ค. |
NTEventAppender | ์๋์ฐ ์์คํ ์ด๋ฒคํธ ๋ก๊ทธ๋ก ๋ฉ์์ง๋ฅผ ์ ์กํ๋ค. |
<์ต์ >
%p | debug, info, warn, error, fatal ๋ฑ priority ์ถ๋ ฅ |
%m | ๋ก๊ทธ๋ด์ฉ ์ถ๋ ฅ |
%d | ๋ก๊น ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ ์๊ฐ์ ์ถ๋ ฅ |
%t | ๋ก๊ทธ ์ด๋ฒคํธ๊ฐ ๋ฐ์๋ ์ฐ๋ ๋์ ์ด๋ฆ ์ถ๋ ฅ |
%F | ๋ก๊น ์ด ๋ฐ์ํ ํ๋ก๊ทธ๋จ ํ์ผ๋ช ์ถ๋ ฅ |
%I | ๋ก๊น ์ด ๋ฐ์ํ caller์ ์ ๋ณด ์ถ๋ ฅ |
%L | ๋ก๊น ์ด ๋ฐ์ํ caller์ ๋ผ์ธ์ ์ถ๋ ฅ |
%M | ๋ก๊น ์ด ๋ฐ์ํ method ์ด๋ฆ ์ถ๋ ฅ |
% | '%' ์ถ๋ ฅ |
%n | ํ๋ซํผ ์ข ์์ ์ธ ๊ฐํ๋ฌธ์ ์ถ๋ ฅ |
%c |
์นดํ ๊ณ ๋ฆฌ ์ถ๋ ฅ ex) a.b.c ์นดํ ๊ณ ๋ฆฌ => %c{2} => b.c ์ถ๋ ฅ |
%C |
ํด๋์ค๋ช ์ถ๋ ฅ ex) org.apache.abc.Class => %C{2} => abc.Class ์ถ๋ ฅ |
%r | ์ดํ๋ฆฌ์ผ์ด์ ์์ ์ดํ๋ถํฐ ๋ก๊น ์ด ๋ฐ์ํ ์์ ์ ์๊ฐ ์ถ๋ ฅ |
<web.xml ์ค์ >
log4j.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<!-- ์ฝ์ ๋ก๊ทธ -->
<appender name="infoConsole" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="[%5p] %d{hh\:mm s} (%F\:%L) %c{1}.%M \: %m%n" />
</layout>
</appender>
<!-- root ์ค์ -->
<root>
<level value="INFO" />
<appender-ref ref="infoConsole" />
</root>
</log4j:configuration>
์ถ์ฒ: https://cofs.tistory.com/354 [CofS]
web.xml
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>
classpath:project/config/log4j.xml
</param-value>
</context-param>
<!-- Log4j -->
<listener>
<listener-class>
org.springframework.web.util.Log4jConfigListener
</listener-class>
</listener>
์ถ์ฒ: https://cofs.tistory.com/354 [CofS]
*Reference
https://gyrfalcon.tistory.com/entry/Log4j
'๐ฑ Spring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
cannot resolve web.servlet.view.InternalResourceViewResolver (0) | 2020.03.15 |
---|---|
์ค๋ฅํ์๊ธฐ๋ก (1) | 2020.03.13 |
์์ฐจํ์๊ณผ ์ด์งํ์ ์๋์ฐจ์ด (1) | 2020.03.07 |
Lombok ์ ๋ฆฌ (0) | 2020.02.12 |
[IntelliJ] Spring MVC, Maven ํ๊ฒฝ ์ค์ ํ๊ธฐ (0) | 2020.02.11 |