Skip to content

Instantly share code, notes, and snippets.

@syakuis
Created June 20, 2017 02:36
Show Gist options
  • Save syakuis/e9d89e0267d96cff72f23a682ea34cb6 to your computer and use it in GitHub Desktop.
Save syakuis/e9d89e0267d96cff72f23a682ea34cb6 to your computer and use it in GitHub Desktop.
Slf4j logback setting sample.
<?xml version="1.0" encoding="UTF-8"?>
<included>
<property name="LOGS_ABSOLUTE_PATH" value="/Users/syaku/develop/egov_mei/logs" />
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOGS_ABSOLUTE_PATH}/mei.all.log</file>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOGS_ABSOLUTE_PATH}/mei.all.%d{yyyy-MM-dd}.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy />
</rollingPolicy>
</appender>
<appender name="MEI" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOGS_ABSOLUTE_PATH}/mei.log</file>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-4relative [%thread] %-5level %logger - %msg%n</pattern>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOGS_ABSOLUTE_PATH}/mei.%d{yyyy-MM-dd}.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy />
</rollingPolicy>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level %logger{36} - %msg%n</pattern>
</layout>
</appender>
<logger name="java.sql" level="debug" />
<!-- SQL문만을 로그로 남기며, PreparedStatement일 경우 관련된 argument 값으로 대체된 SQL문이 보여진다. -->
<logger name="jdbc.sqlonly" level="debug" />
<!-- SQL문과 해당 SQL을 실행시키는데 수행된 시간 정보(milliseconds)를 포함한다. -->
<logger name="jdbc.sqltiming" level="debug" />
<!-- ResultSet을 제외한 모든 JDBC 호출 정보를 로그로 남긴다. 많은 양의 로그가 생성되므로 특별히 JDBC 문제를 추적해야 할 필요가 있는 경우를 제외하고는 사용을 권장하지 않는다. -->
<logger name="jdbc.audit" level="error" />
<!-- ResultSet을 포함한 모든 JDBC 호출 정보를 로그로 남기므로 매우 방대한 양의 로그가 생성된다. -->
<logger name="jdbc.resultset" level="error" />
<logger name="org.springframework" level="info" />
<logger name="org.springframework.security" level="debug" />
<logger name="org.springframework.jndi" level="debug" />
<logger name="egovframework" level="error" />
<logger name="egovmei" level="debug">
<appender-ref ref="MEI" />
</logger>
<logger name="org.mei" level="debug">
<appender-ref ref="MEI" />
</logger>
<logger name="org.syaku.mei" level="debug">
<appender-ref ref="MEI" />
</logger>
<logger name="org.syaku.mei.security" level="debug">
<appender-ref ref="MEI" />
</logger>
<root level="info">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE" />
<appender-ref ref="MEI" />
</root>
</included>
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="30 seconds">
<if condition='isDefined("spring.profiles.active")'>
<then>
<if condition='"${spring.profiles.active}".contains("test")'>
<then>
<include resource="logback-mei.test.xml" />
</then>
</if>
<if condition='"${spring.profiles.active}".contains("prd")'>
<then>
<include resource="logback-mei.prd.xml" />
</then>
</if>
<if condition='"${spring.profiles.active}".contains("default") || "${spring.profiles.active}".contains("dev")'>
<then>
<include resource="logback-mei.xml" />
</then>
</if>
</then>
<else>
<include resource="logback-mei.xml" />
</else>
</if>
</configuration>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment