log4j.xml 사용하기
http://logging.apache.org/log4j/2.x/
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<!-- Appenders -->
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %5p [%c::%M-%L] %m%n" />
</layout>
</appender>
<appender name="console-infolog" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %5p %m%n" />
</layout>
<filter class="org.apache.log4j.varia.StringMatchFilter">
<param name="StringToMatch" value="_IGNORE_LOG_"/>
<param name="AcceptOnMatch" value="false"/>
</filter>
</appender>
<!-- 날짜별 로그 파일 생성 -->
<appender name="rollingFile" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="/app/tomcat/dailylogs/daily.log" />
<param name="Append" value="true" />
<!-- param name="MaxFileSize" value="100MB"/ -->
<!-- param name="MaxBackupIndex" value="2"></param -->
<param name="DatePattern" value="'.'yyyy-MM-dd" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %5p [%c::%M-%L] %m%n" />
</layout>
</appender>
<!-- Application Loggers -->
<logger name="com.tistory.treausurebear">
<level value="debug" />
</logger>
<!-- Application Loggers End -->
<!-- Query Loggers -->
<logger name="jdbc.sqlonly" additivity="false">
<level value="INFO"/>
<appender-ref ref="console-infolog"/>
<appender-ref ref="rollingFile" />
</logger>
<logger name="jdbc.resultsettable" additivity="false">
<level value="INFO"/>
<appender-ref ref="console"/>
<appender-ref ref="rollingFile" />
</logger>
<!-- Root Logger -->
<root>
<priority value="off"/>
<appender-ref ref="console" />
<appender-ref ref="rollingFile" />
</root>
</log4j:configuration>
ConversionPattern에 출력하는 로그형식을 지정해줄 수 있다. 취향에 따라 출력되는 형식은 다르다~
위에 형식대로 한다면 출력은 아래와 같이 된다.
2020-01-07 01:10:05,195 INFO [com.tistory.treasurebear.KaKaoVisionUtil::ocr-101] Hello world~
2020-01-07 01:10:05,196 INFO [com.tistory.treasurebear.KaKaoVisionUtil::ocr-120] Hello world~
filter 사용해서, 원하는 것만 보여주기
https://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/varia/package-summary.html
위에 필터는, StringToMatch에서 지정한 문자열(여기서는 _IGNORE_LOG_ )이 있으면 로그에 출력하지 않는다.(AcceptOnMatch=false)
rollingFile은 날짜별로 로그를 생성한다. 파일 path, 기본 파일명은 File에 지정한다. 여기서는 /app/tomcat/dailylogs/daily.log
날짜별로 로그를 생성할 때, 날짜마다 다른 이름의 로그를 쌓고 싶다면 DatePattern에서 지정해준다. 위에처럼 지정하면, 결과적으로 나오는 이름은 파일명은 다음과 같다.
/app/tomcat/dailylogs/daily.log.2020.01.01
'개발~ > JAVA' 카테고리의 다른 글
Kotlin 소개 (0) | 2022.12.10 |
---|---|
[Spring boot] page 1부터 시작하기 (0) | 2020.04.30 |
JSON 빈 객체를 단말에 어떻게 내려줄까?(Android,iOS) (0) | 2019.04.25 |
주석이쁘게 달기 (0) | 2017.06.16 |
[JAVA] java.util.Date (0) | 2017.03.17 |