log 설정 version 2로 변경
This commit is contained in:
@@ -1,140 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
|
|
||||||
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
|
|
||||||
|
|
||||||
<!-- ConsoleAppender -->
|
|
||||||
<appender name="console" class="org.apache.log4j.ConsoleAppender">
|
|
||||||
<param name="Encoding" value="UTF-8" />
|
|
||||||
<!-- ref.) attr : Encoding, ImmediateFlush, Target, Threshold -->
|
|
||||||
<layout class="org.apache.log4j.PatternLayout">
|
|
||||||
<param name="ConversionPattern" value="%d %5p [%c] %m%n" />
|
|
||||||
</layout>
|
|
||||||
<!-- String 매칭 되는 Log 삭제
|
|
||||||
<filter class="org.apache.log4j.varia.StringMatchFilter">
|
|
||||||
<param name="StringToMatch" value="Result" />
|
|
||||||
<param name="AcceptOnMatch" value="false" />
|
|
||||||
</filter>
|
|
||||||
-->
|
|
||||||
</appender>
|
|
||||||
|
|
||||||
<!-- FileAppender -->
|
|
||||||
<appender name="appLog" class="org.apache.log4j.FileAppender">
|
|
||||||
<param name="Encoding" value="UTF-8" />
|
|
||||||
<param name="File" value="/DES/logs/was/pilot/applog/app.log" />
|
|
||||||
<param name="ImmediateFlush" value="true" />
|
|
||||||
<param name="Append" value="true" />
|
|
||||||
<layout class="org.apache.log4j.PatternLayout">
|
|
||||||
<param name="ConversionPattern" value="%d %5p [%c] %m%n" />
|
|
||||||
</layout>
|
|
||||||
</appender>
|
|
||||||
|
|
||||||
<!-- FileAppender : XML
|
|
||||||
<appender name="appLog" class="org.apache.log4j.FileAppender">
|
|
||||||
<param name="Encoding" value="UTF-8" />
|
|
||||||
<param name="File" value="/DES/logs/was/pilot/appxmllog/appxml.log" />
|
|
||||||
<param name="ImmediateFlush" value="true" />
|
|
||||||
<param name="Append" value="true" />
|
|
||||||
<layout class="org.apache.log4j.xml.XMLLayout"></layout>
|
|
||||||
</appender>
|
|
||||||
-->
|
|
||||||
|
|
||||||
<!-- RollingFileAppender -->
|
|
||||||
<appender name="sqlLog" class="org.apache.log4j.RollingFileAppender">
|
|
||||||
<param name="File" value="/DES/logs/was/pilot/sqllog/sql.log" />
|
|
||||||
<param name="Append" value="true" />
|
|
||||||
<param name="MaxFileSize" value="1000KB" />
|
|
||||||
<layout class="org.apache.log4j.PatternLayout">
|
|
||||||
<param name="ConversionPattern" value="%d %5p [%c] %m%n" />
|
|
||||||
</layout>
|
|
||||||
</appender>
|
|
||||||
|
|
||||||
<!-- JDBCAppender
|
|
||||||
<appender name="jdbcAppender" class="org.apache.log4j.jdbc.JDBCAppender">
|
|
||||||
<param name="Driver" value="oracle.jdbc.driver.OracleDriver"/>
|
|
||||||
<param name="URL" value="jdbc:oracle:thin:@127.0.0.1:1521:orcl"/>
|
|
||||||
<param name="User" value="scott"/>
|
|
||||||
<param name="Password" value="tiger"/-->
|
|
||||||
<!--param name="bufferSize" value="1"/--><!-- 주석처리 해 둘 것 -->
|
|
||||||
<!--param name="Sql" value="INSERT INTO tb_log (message, class, priority, log_date)
|
|
||||||
VALUES ('%m', '%l', '%p', '%d')"/>
|
|
||||||
</appender>
|
|
||||||
-->
|
|
||||||
<!--
|
|
||||||
JDBCAppender를 사용하여 case by case로 DB에 저장을 하게되면 DBMS에 많은 부담을 줄 수 있다.
|
|
||||||
AsyncAppender를 사용하여 큐에 쌓았다가 한꺼번에 저장하는 방식을 추천한다.
|
|
||||||
<appender name="asyncAppender" class="org.apache.log4j.AsyncAppender">
|
|
||||||
<param name="locationInfo" value="false"/>
|
|
||||||
<! bufferSize 모아서 보낼 로그 수(이벤트의 수). 디폴트 128
|
|
||||||
<param name="bufferSize" value="128"/>
|
|
||||||
<appender-ref ref="jdbcAppender" />
|
|
||||||
</appender>
|
|
||||||
-->
|
|
||||||
|
|
||||||
|
|
||||||
<!-- DailyRollingFileAppender -->
|
|
||||||
<appender name="dailyRollingFile" class="org.apache.log4j.DailyRollingFileAppender">
|
|
||||||
<!-- ref.) attr : FileAppender + DatePattern -->
|
|
||||||
<!--param name="File" value="C:/DES/workspace/projects/engineer/src/main/webapp/WEB-INF/logs/sample.log" /-->
|
|
||||||
<param name="File" value="/DES/logs/was/pilot/console.log" />
|
|
||||||
<param name="Append" value="true" />
|
|
||||||
<!--
|
|
||||||
SimpleDateFormat 을 따름. ex.) .yyyy-ww : 첫날 기준 매주마다,
|
|
||||||
.yyyy-MM : 월단위
|
|
||||||
.yyyy-MM-ww : 주단위
|
|
||||||
.yyyy-MM-dd : 일단위
|
|
||||||
.yyyy-MM-dd-a : 12시간단위
|
|
||||||
.yyyy-MM-dd-HH : 시간단위
|
|
||||||
.yyyy-MM-dd-HH-mm : 매분마다
|
|
||||||
-->
|
|
||||||
<param name="DatePattern" value="'.'yyyy-MM-dd" />
|
|
||||||
<layout class="org.apache.log4j.PatternLayout">
|
|
||||||
<param name="ConversionPattern" value="%d %5p [%c] %m%n" />
|
|
||||||
</layout>
|
|
||||||
</appender>
|
|
||||||
|
|
||||||
<!-- log SQL with timing information, post execution
|
|
||||||
-->
|
|
||||||
<logger name="aes" additivity="false">
|
|
||||||
<level value="DEBUG" />
|
|
||||||
<appender-ref ref="console" />
|
|
||||||
<appender-ref ref="dailyRollingFile" />
|
|
||||||
</logger>
|
|
||||||
<logger name="able" additivity="false">
|
|
||||||
<level value="DEBUG" />
|
|
||||||
<appender-ref ref="console" />
|
|
||||||
</logger>
|
|
||||||
<!-- SQL Result Log -->
|
|
||||||
<logger name="java.sql" additivity="false">
|
|
||||||
<level value="DEBUG" />
|
|
||||||
<appender-ref ref="console" />
|
|
||||||
<!--appender-ref ref="jdbcAppender"/ --> <!-- Oracle DBMS TABLE 에 로그를 남기고 있음 -->
|
|
||||||
</logger>
|
|
||||||
<!-- controlling scope -->
|
|
||||||
<logger name="org.springframework.web.servlet.DispatcherServlet" additivity="false">
|
|
||||||
<level value="DEBUG" />
|
|
||||||
<appender-ref ref="console" />
|
|
||||||
</logger>
|
|
||||||
<logger name="org.springframework.web.context.ContextLoader" additivity="false">
|
|
||||||
<level value="DEBUG" />
|
|
||||||
<appender-ref ref="console" />
|
|
||||||
</logger>
|
|
||||||
|
|
||||||
<logger name="com.nexacro.xapi" additivity="false">
|
|
||||||
<level value="FATAL" />
|
|
||||||
<appender-ref ref="console" />
|
|
||||||
</logger>
|
|
||||||
|
|
||||||
<logger name="com.nexacro.performance" additivity="false">
|
|
||||||
<level value="TRACE" />
|
|
||||||
<appender-ref ref="console" />
|
|
||||||
</logger>
|
|
||||||
|
|
||||||
<root>
|
|
||||||
<priority value ="INFO" />
|
|
||||||
|
|
||||||
<appender-ref ref="console"/>
|
|
||||||
<!--
|
|
||||||
<appender-ref ref="dailyRollingFile"/>
|
|
||||||
-->
|
|
||||||
</root>
|
|
||||||
</log4j:configuration>
|
|
||||||
110
src/test/resources/log4j2.xml
Normal file
110
src/test/resources/log4j2.xml
Normal file
@@ -0,0 +1,110 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<Configuration>
|
||||||
|
<Appenders>
|
||||||
|
<Console name="console" target="SYSTEM_OUT">
|
||||||
|
<PatternLayout pattern="%d %5p [%c] %m%n" />
|
||||||
|
</Console>
|
||||||
|
<!-- attribute: name(Appender명), fileName(target파일명), append(이어쓰기여부, true(default) or false), locking, immediateFlush, ignoreExceptions, bufferedIO -->
|
||||||
|
<!-- element: Layout(출력패턴설정), Filters -->
|
||||||
|
<!-- append="false"이면 매번 로깅 시 기존 로그 파일을 clear하고 새로 로깅 -->
|
||||||
|
<File name="file" fileName="./logs/file/sample.log" append="false">
|
||||||
|
<PatternLayout pattern="%d %5p [%c] %m%n" />
|
||||||
|
</File>
|
||||||
|
<File name="mdcFile" fileName="./logs/file/mdcSample.log" append="false">
|
||||||
|
<!-- Thread Context Map(also known as MDC) 객체의 key와 매칭되는 value를 로깅 - %X{key} -->
|
||||||
|
<!-- ex) ThreadContext.put(“testKey”, “testValue”);인 경우, 레이아웃 패턴 %X{testKey}에 의해 “testValue” 로깅 -->
|
||||||
|
<PatternLayout pattern="%d %5p [%c] [%X{class} %X{method} %X{testKey}] %m%n" />
|
||||||
|
</File>
|
||||||
|
<!-- attribute: name(Appender명), fileName(target파일명), filePattern(history파일명), append, immediateFlush, ignoreExceptions, bufferedIO -->
|
||||||
|
<!-- element: Layout(출력패턴설정), Filters, Policy(file rolling 조건 설정), Strategy(file name과 location 관련 설정) -->
|
||||||
|
<RollingFile name="rollingFile" fileName="./logs/rolling/rollingSample.log" filePattern="./logs/rolling/rollingSample.%i.log">
|
||||||
|
<PatternLayout pattern="%d %5p [%c] %m%n" />
|
||||||
|
<Policies>
|
||||||
|
<!-- size 단위: Byte(default), KB, MB, or GB -->
|
||||||
|
<SizeBasedTriggeringPolicy size="1000" />
|
||||||
|
</Policies>
|
||||||
|
<!-- 기존 maxIndex 속성이 Strategy 엘리먼트로 변경됨 -->
|
||||||
|
<!-- index는 min(default 1)부터 max(default 7)까지 증가, 아래에는 max="3"으로 settting -->
|
||||||
|
<!-- fileIndex="min"이므로 target file의 size가 1000 byte를 넘어가면, fileIndex가 1(min)인 history file에 백업 (fixed window strategy) -->
|
||||||
|
<!-- 그 다음 1000 byte를 넘어가면, rollingSample.1.log을 rollingSample.2.log 파일에 복사하고, target 파일을 rollingSample.1.log에복사한 후 target 파일에 새로 로깅 -->
|
||||||
|
<DefaultRolloverStrategy max="3" fileIndex="min" />
|
||||||
|
</RollingFile>
|
||||||
|
</Appenders>
|
||||||
|
<Loggers>
|
||||||
|
<Logger name="java.sql" level="INFO" additivity="false">
|
||||||
|
<AppenderRef ref="console" />
|
||||||
|
</Logger>
|
||||||
|
<Logger name="egovframework" level="DEBUG" additivity="false">
|
||||||
|
<AppenderRef ref="console" />
|
||||||
|
</Logger>
|
||||||
|
<!-- log SQL with timing information, post execution -->
|
||||||
|
<Logger name="jdbc.sqltiming" level="INFO" additivity="false">
|
||||||
|
<AppenderRef ref="console" />
|
||||||
|
</Logger>
|
||||||
|
<Logger name="org.springframework" level="INFO" additivity="false">
|
||||||
|
<AppenderRef ref="console" />
|
||||||
|
</Logger>
|
||||||
|
<Logger name="com.nexacro.xapi" level="FATAL" additivity="false">
|
||||||
|
<AppenderRef ref="console" />
|
||||||
|
</Logger>
|
||||||
|
<Logger name="com.nexacro.spring" level="TRACE" additivity="false">
|
||||||
|
<AppenderRef ref="console" />
|
||||||
|
</Logger>
|
||||||
|
<Root level="DEBUG">
|
||||||
|
<AppenderRef ref="console" />
|
||||||
|
<AppenderRef ref="file" />
|
||||||
|
</Root>
|
||||||
|
</Loggers>
|
||||||
|
</Configuration>
|
||||||
|
|
||||||
|
<!-- LOG4JDBC를 사용하고자 하는 경우 아래와 같이 설정한다.
|
||||||
|
* 로거 정의
|
||||||
|
•jdbc.sqlonly :
|
||||||
|
SQL문만을 로그로 남기며, PreparedStatement일 경우 관련된 argument 값으로 대체된 SQL문이 보여진다.
|
||||||
|
•jdbc.sqltiming :
|
||||||
|
SQL문과 해당 SQL을 실행시키는데 수행된 시간 정보(milliseconds)를 포함한다.
|
||||||
|
•jdbc.audit :
|
||||||
|
ResultSet을 제외한 모든 JDBC 호출 정보를 로그로 남긴다. 많은 양의 로그가 생성되므로 특별히 JDBC 문제를 추적해야 할 필요가 있는 경우를 제외하고는 사용을 권장하지 않는다.
|
||||||
|
•jdbc.resultset :
|
||||||
|
ResultSet을 포함한 모든 JDBC 호출 정보를 로그로 남기므로 매우 방대한 양의 로그가 생성된다.
|
||||||
|
|
||||||
|
<appender name="sql-appender" class="org.apache.log4j.FileAppender">
|
||||||
|
<param name="File" value="/DES/logs/was/logs/sql.log" />
|
||||||
|
<param name="Append" value="false" />
|
||||||
|
<layout class="org.apache.log4j.PatternLayout">
|
||||||
|
<param name="ConversionPattern"
|
||||||
|
value=" -> %d{yyyy-MM-dd HH:mm:ss.SSS} <%t> %m%n%n" />
|
||||||
|
</layout>
|
||||||
|
</appender>
|
||||||
|
|
||||||
|
<! sql 문만 log
|
||||||
|
<logger name="jdbc.sqlonly" additivity="false">
|
||||||
|
<level value="debug" />
|
||||||
|
<appender-ref ref="sql-appender" />
|
||||||
|
</logger>
|
||||||
|
|
||||||
|
<! sql 문과 걸린 시간 : log SQL with timing information, post execution
|
||||||
|
<logger name="jdbc.sqltiming" additivity="false">
|
||||||
|
<level value="debug" />
|
||||||
|
<appender-ref ref="sql-timing-appender" />
|
||||||
|
</logger>
|
||||||
|
|
||||||
|
<! 모든 sql 결과 log : log all jdbc calls except ResultSet calls
|
||||||
|
<logger name="jdbc.audit" additivity="false">
|
||||||
|
<level value="debug" />
|
||||||
|
<appender-ref ref="jdbc-appender" />
|
||||||
|
</logger>
|
||||||
|
|
||||||
|
<! log the jdbc ResultSet calls
|
||||||
|
<logger name="jdbc.resultset" additivity="false">
|
||||||
|
<level value="debug" />
|
||||||
|
<appender-ref ref="jdbc-appender" />
|
||||||
|
</logger>
|
||||||
|
|
||||||
|
<! sql 결과 연결 정보: log connection open/close events and dump of all open connection
|
||||||
|
numbers
|
||||||
|
<logger name="jdbc.connection" additivity="false">
|
||||||
|
<level value="debug" />
|
||||||
|
<appender-ref ref="connection-appender" />
|
||||||
|
</logger>
|
||||||
|
LOG4JDBC 설정 끝 -->
|
||||||
Reference in New Issue
Block a user