<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="true">
<property name="USER_HOME" value="c:\\temp" />
<property name="ENV_PREFIX" value="s1" />
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- encoders are assigned the type
ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<appender name="COM_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${USER_HOME}\comFile-${ENV_PREFIX}.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${USER_HOME}\comFile-${ENV_PREFIX}.%i.log</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>5</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>50MB</maxFileSize>
</triggeringPolicy>
<encoder>
<pattern>%d [%t] %-3p - ID:%X{UUID} %m%n</pattern>
</encoder>
</appender>
<appender name="ASYNC_COM_FILE" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="COM_FILE" />
</appender>
<appender name="transactionLoggerData" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${USER_HOME}\transaction-${ENV_PREFIX}.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${USER_HOME}\transaction-${ENV_PREFIX}.%i.log</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>3</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>50MB</maxFileSize>
</triggeringPolicy>
<encoder>
<pattern>%d [%t] %-3p - ID:%X{UUID} %m%n</pattern>
</encoder>
</appender>
<appender name="ASYNC_TRAN_Logger" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="transactionLoggerData" />
</appender>
<logger name="transactionLogger" level="INFO" additivity="false">
<appender-ref ref="ASYNC_TRAN_Logger" />
</logger>
<logger name="FILE" level="INFO" additivity="false">
<appender-ref ref="ASYNC_COM_FILE" />
</logger>
<root>
<level value="INFO"/>
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE" />
</root>
</configuration>
System.setProperty("logback.configurationFile", fileName);
InputStream inputStream = new FileInputStream(fileName);
LoggerContext loggerContext = (LoggerContext) LoggerFactory
.getILoggerFactory();
loggerContext.reset();
JoranConfigurator configurator = new JoranConfigurator();
configurator.setContext(loggerContext);
configurator.doConfigure(inputStream); // loads logback file
inputStream.close();