<configuration debug="true">
	<!--
		See http://logback.qos.ch/manual/ for more information on how to
		configure the Logback logging engine.
		Available levels: ALL < TRACE < DEBUG < INFO < WARN < ERROR < OFF
	-->

	<!--
		Let PMS decide the path for the logfile: either the current directory
		or (when that is read only) the system temp directory.
	-->
	<define name="debugLogPath" class="net.pms.logging.DebugLogPathDefiner" />

	<!-- Appender for the console -->
	<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
		<!-- Only log INFO and higher -->
		<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
			<level>INFO</level>
		</filter>
		<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
			<pattern>%-5level %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %msg%n</pattern>
		</encoder>
	</appender>

	<!--
		Appender for the debug.log that will keep the file growing in size
		until PMS is restarted.
	-->
	<appender name="debug.log" class="ch.qos.logback.core.FileAppender">
		<!-- No threshold filtering, log everything the root logger allows -->
		<file>${debugLogPath}${file.separator}debug.log</file>
		<append>false</append>  <!-- Start new debug.log on each application start -->
		<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
			<pattern>%-5level %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %msg%n</pattern>
		</encoder>
	</appender>

	<!--
		Appender for the debug.log that will roll the debug.log file after 10 MBytes
		and will keep a maximum of 5 old and compressed logs.
	-->
	<appender name="debug.log.10MB" class="ch.qos.logback.core.rolling.RollingFileAppender">
		<!-- No threshold filtering, log everything the root logger allows -->
		<file>${debugLogPath}${file.separator}debug.log</file>
		<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
			<fileNamePattern>${debugLogPath}debug.log.%i.zip</fileNamePattern>
			<minIndex>1</minIndex>
			<maxIndex>5</maxIndex>
		</rollingPolicy>
		<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
			<maxFileSize>10MB</maxFileSize>
		</triggeringPolicy>
		<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
			<pattern>%-5level %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %msg%n</pattern>
		</encoder>
	</appender>

	<!--
		For debugging purposes it can be handy to define custom levels for
		specific classes or packages. For example:

	<logger name="net.pms.dlna.DLNAResource" level="ALL" />
	<logger name="net.pms.network.RequestHandlerV2" level="ALL" />
	<logger name="net.pms.util" level="ALL" />
	-->

	<!-- silence noise from external libraries -->
	<logger name="org.apache" level="WARN" />
	<logger name="httpclient.wire" level="WARN" />

	<!-- Root logger defines the minimum log level for all loggers -->
	<root level="DEBUG">
		<appender-ref ref="console" />

		<!--
			If unlimited growth of debug.log is not desired use the
			appender-ref "debug.log.10MB" instead of "debug.log".
		-->
		<appender-ref ref="debug.log" />
		<!-- <appender-ref ref="debug.log.10MB" /> -->
	</root>
</configuration>