log 설정 version 2로 변경

This commit is contained in:
ParkSeongMin
2015-10-16 09:03:36 +00:00
parent bab223ec26
commit 569394523a
2 changed files with 110 additions and 140 deletions

View File

@@ -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>

View 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=" -&gt; %d{yyyy-MM-dd HH:mm:ss.SSS} &lt;%t&gt; %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 설정 끝 -->