<!--
~ Copyright 2010-2013 Ning, Inc.
~ Copyright 2014-2015 Groupon, Inc
~ Copyright 2014-2015 The Billing Project, LLC
~
~ The Billing Project licenses this file to you under the Apache License, version 2.0
~ (the "License"); you may not use this file except in compliance with the
~ License. You may obtain a copy of the License at:
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
~ WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
~ License for the specific language governing permissions and limitations
~ under the License.
--><configuration><conversionRuleconversionWord="maskedMsg"converterClass="org.killbill.billing.server.log.obfuscators.ObfuscatorConverter" /><appendername="STDOUT"class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>%date [%thread] %-5level %logger{36} - %maskedMsg%n%ex</pattern></encoder></appender><!-- JDBC appenders --><appendername="SIFT-jdbc-sqlonly"class="ch.qos.logback.classic.sift.SiftingAppender"><discriminatorclass="org.killbill.billing.server.log.ThreadNameBasedDiscriminator"/><sift><appendername="jdbc-sqlonly-${threadName}"class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${LOGS_DIR:-./logs}/jdbc-sqlonly.${threadName}.out</file><rollingPolicyclass="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!-- rollover daily --><fileNamePattern>${LOGS_DIR:-./logs}/jdbc-sqlonly-%d{yyyy-MM-dd}.%i.${threadName}.out.gz</fileNamePattern><maxHistory>3</maxHistory><cleanHistoryOnStart>true</cleanHistoryOnStart><timeBasedFileNamingAndTriggeringPolicyclass="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><!-- or whenever the file size reaches 100MB --><maxFileSize>100MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy></rollingPolicy><encoder><pattern>%date [%thread] %maskedMsg%n%ex</pattern></encoder></appender></sift></appender><appendername="SIFT-jdbc-sqltiming"class="ch.qos.logback.classic.sift.SiftingAppender"><discriminatorclass="org.killbill.billing.server.log.ThreadNameBasedDiscriminator"/><sift><appendername="jdbc-sqltiming-${threadName}"class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${LOGS_DIR:-./logs}/jdbc-sqltiming.${threadName}.out</file><rollingPolicyclass="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!-- rollover daily --><fileNamePattern>${LOGS_DIR:-./logs}/jdbc-sqltiming-%d{yyyy-MM-dd}.%i.${threadName}.out.gz</fileNamePattern><maxHistory>3</maxHistory><cleanHistoryOnStart>true</cleanHistoryOnStart><timeBasedFileNamingAndTriggeringPolicyclass="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><!-- or whenever the file size reaches 100MB --><maxFileSize>100MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy></rollingPolicy><encoder><pattern>%date [%thread] %maskedMsg%n%ex</pattern></encoder></appender></sift></appender><appendername="SIFT-jdbc-audit"class="ch.qos.logback.classic.sift.SiftingAppender"><discriminatorclass="org.killbill.billing.server.log.ThreadNameBasedDiscriminator"/><sift><appendername="jdbc-audit-${threadName}"class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${LOGS_DIR:-./logs}/jdbc-audit.${threadName}.out</file><rollingPolicyclass="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!-- rollover daily --><fileNamePattern>${LOGS_DIR:-./logs}/jdbc-audit-%d{yyyy-MM-dd}.%i.${threadName}.out.gz</fileNamePattern><maxHistory>3</maxHistory><cleanHistoryOnStart>true</cleanHistoryOnStart><timeBasedFileNamingAndTriggeringPolicyclass="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><!-- or whenever the file size reaches 100MB --><maxFileSize>100MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy></rollingPolicy><encoder><pattern>%date [%thread] %maskedMsg%n%ex</pattern></encoder></appender></sift></appender><appendername="SIFT-jdbc-resultset"class="ch.qos.logback.classic.sift.SiftingAppender"><discriminatorclass="org.killbill.billing.server.log.ThreadNameBasedDiscriminator"/><sift><appendername="jdbc-resultset-${threadName}"class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${LOGS_DIR:-./logs}/jdbc-resultset.${threadName}.out</file><rollingPolicyclass="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!-- rollover daily --><fileNamePattern>${LOGS_DIR:-./logs}/jdbc-resultset-%d{yyyy-MM-dd}.%i.${threadName}.out.gz</fileNamePattern><maxHistory>3</maxHistory><cleanHistoryOnStart>true</cleanHistoryOnStart><timeBasedFileNamingAndTriggeringPolicyclass="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><!-- or whenever the file size reaches 100MB --><maxFileSize>100MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy></rollingPolicy><encoder><pattern>%date [%thread] %maskedMsg%n%ex</pattern></encoder></appender></sift></appender><appendername="SIFT-jdbc-resultsettable"class="ch.qos.logback.classic.sift.SiftingAppender"><discriminatorclass="org.killbill.billing.server.log.ThreadNameBasedDiscriminator"/><sift><appendername="jdbc-resultsettable-${threadName}"class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${LOGS_DIR:-./logs}/jdbc-resultsettable.${threadName}.out</file><rollingPolicyclass="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!-- rollover daily --><fileNamePattern>${LOGS_DIR:-./logs}/jdbc-resultsettable-%d{yyyy-MM-dd}.%i.${threadName}.out.gz</fileNamePattern><maxHistory>3</maxHistory><cleanHistoryOnStart>true</cleanHistoryOnStart><timeBasedFileNamingAndTriggeringPolicyclass="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><!-- or whenever the file size reaches 100MB --><maxFileSize>100MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy></rollingPolicy><encoder><pattern>%date [%thread] %maskedMsg%n%ex</pattern></encoder></appender></sift></appender><appendername="SIFT-jdbc-connection"class="ch.qos.logback.classic.sift.SiftingAppender"><discriminatorclass="org.killbill.billing.server.log.ThreadNameBasedDiscriminator"/><sift><appendername="jdbc-connection-${threadName}"class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${LOGS_DIR:-./logs}/jdbc-connection.${threadName}.out</file><rollingPolicyclass="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!-- rollover daily --><fileNamePattern>${LOGS_DIR:-./logs}/jdbc-connection-%d{yyyy-MM-dd}.%i.${threadName}.out.gz</fileNamePattern><maxHistory>3</maxHistory><cleanHistoryOnStart>true</cleanHistoryOnStart><timeBasedFileNamingAndTriggeringPolicyclass="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><!-- or whenever the file size reaches 100MB --><maxFileSize>100MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy></rollingPolicy><encoder><pattern>%date [%thread] %maskedMsg%n%ex</pattern></encoder></appender></sift></appender><!-- Logs only SQL. SQL executed within a prepared statement is automatically shown with it's bind arguments replaced with the data bound at that position, for greatly increased readability. --><loggername="jdbc.sqlonly"level="OFF"additivity="false"><appender-refref="SIFT-jdbc-sqlonly"/></logger><!-- Logs the SQL, post-execution, including timing statistics on how long the SQL took to execute. --><loggername="jdbc.sqltiming"level="OFF"additivity="false"><appender-refref="SIFT-jdbc-sqltiming"/></logger><!-- Logs ALL JDBC calls except for ResultSets. This is a very voluminous output, and is not normally needed unless tracking down a specific JDBC problem. --><loggername="jdbc.audit"level="OFF"additivity="false"><appender-refref="SIFT-jdbc-audit"/></logger><!-- Even more voluminous, because all calls to ResultSet objects are logged. --><loggername="jdbc.resultset"level="OFF"additivity="false"><appender-refref="SIFT-jdbc-resultset"/></logger><!-- Log the jdbc results as a table. Level debug will fill in unread values in the result set. --><loggername="jdbc.resultsettable"level="OFF"additivity="false"><appender-refref="SIFT-jdbc-resultsettable"/></logger><!-- Logs connection open and close events as well as dumping all open connection numbers. This is very useful for hunting down connection leak problems. --><loggername="jdbc.connection"level="OFF"additivity="false"><appender-refref="SIFT-jdbc-connection"/></logger><!-- Silence verbose loggers in DEBUG mode --><loggername="com.dmurph"level="OFF"/><loggername="org.killbill.billing.notificationq"level="INFO"/><loggername="org.killbill.billing.queue"level="INFO"/><loggername="org.killbill.billing.server.updatechecker"level="INFO"/><loggername="org.eclipse"level="INFO"/><rootlevel="INFO"><appender-refref="STDOUT"/></root></configuration>