<?xml version="1.0" encoding="UTF-8" ?>
<!--
	~ Copyright (C) 2020 Radix IoT LLC. All rights reserved.
-->
<Configuration packages="com.serotonin.m2m2.rt.console">
	<Appenders>
		<Console name="stdout" target="SYSTEM_OUT">
			<PatternLayout pattern="${mango:appender.stdout.pattern}"/>
		</Console>
		<RollingRandomAccessFile name="logfile" filePattern="${mango:paths.logs}/%d{MM-dd-yyyy}-%i.ma.log.gz" fileName="${mango:paths.logs}/ma.log">
			<PatternLayout pattern="${mango:appender.logfile.pattern}"/>
			<Policies>
				<OnStartupTriggeringPolicy />
				<TimeBasedTriggeringPolicy />
				<SizeBasedTriggeringPolicy size="${mango:appender.logfile.size}"/>
			</Policies>
			<DefaultRolloverStrategy fileIndex="nomax">
				<Delete basePath="${mango:paths.logs}" >
					<IfFileName glob="*.ma.{log,log.gz}" />
					<IfAny>
						<IfLastModified age="${mango:appender.logfile.delete.age}" />
						<IfAccumulatedFileSize exceeds="${mango:appender.logfile.delete.size}" />
						<IfAccumulatedFileCount exceeds="${mango:appender.logfile.delete.count}" />
					</IfAny>
				</Delete>
			</DefaultRolloverStrategy>
		</RollingRandomAccessFile>
		<!-- IasTsdb Logging -->
		<RollingRandomAccessFile name="corruption" filePattern="${mango:paths.logs}/%d{MM-dd-yyyy}-%i.iastsdb-corruption.log.gz" fileName="${mango:paths.logs}/iastsdb-corruption.log">
			<PatternLayout pattern="%m"/>
			<Policies>
				<SizeBasedTriggeringPolicy size="5MB"/>
			</Policies>
			<DefaultRolloverStrategy fileIndex="nomax">
				<Delete basePath="${mango:paths.logs}" >
					<IfFileName glob="*.iastsdb-corruption.{log,log.gz}" />
					<IfAccumulatedFileCount exceeds="20"/>
				</Delete>
			</DefaultRolloverStrategy>
		</RollingRandomAccessFile>
		<RollingRandomAccessFile name="compression" filePattern="${mango:paths.logs}/%d{MM-dd-yyyy}-%i.iastsdb-compression.log.gz" fileName="${mango:paths.logs}/iastsdb-compression.log">
			<PatternLayout pattern="%m"/>
			<Policies>
				<SizeBasedTriggeringPolicy size="5MB"/>
			</Policies>
			<DefaultRolloverStrategy fileIndex="nomax">
				<Delete basePath="${mango:paths.logs}" >
					<IfFileName glob="*.iastsdb-compression.{log,log.gz}" />
					<IfAccumulatedFileCount exceeds="20"/>
				</Delete>
			</DefaultRolloverStrategy>
		</RollingRandomAccessFile>
		<RollingRandomAccessFile name="reverser" filePattern="${mango:paths.logs}/%d{MM-dd-yyyy}-%i.iastsdb-reverse.log.gz" fileName="${mango:paths.logs}/iastsdb-reverse.log">
			<PatternLayout pattern="%m"/>
			<Policies>
				<SizeBasedTriggeringPolicy size="5MB"/>
			</Policies>
			<DefaultRolloverStrategy fileIndex="nomax">
				<Delete basePath="logs" >
					<IfFileName glob="*.iastsdb-reverse.{log,log.gz}" />
					<IfAccumulatedFileCount exceeds="20"/>
				</Delete>
			</DefaultRolloverStrategy>
		</RollingRandomAccessFile>
		<RollingRandomAccessFile name="script" filePattern="${mango:paths.logs}/%d{MM-dd-yyyy}-%i.script.log.gz" fileName="${mango:paths.logs}/script.log">
			<PatternLayout pattern="${mango:appender.script.pattern}"/>
			<Policies>
				<OnStartupTriggeringPolicy />
				<TimeBasedTriggeringPolicy />
				<SizeBasedTriggeringPolicy size="${mango:appender.script.size}"/>
			</Policies>
			<DefaultRolloverStrategy fileIndex="nomax">
				<Delete basePath="${mango:paths.logs}" >
					<IfFileName glob="*.script.{log,log.gz}" />
					<IfAny>
						<IfLastModified age="${mango:appender.script.delete.age}" />
						<IfAccumulatedFileSize exceeds="${mango:appender.script.delete.size}" />
						<IfAccumulatedFileCount exceeds="${mango:appender.script.delete.count}" />
					</IfAny>
				</Delete>
			</DefaultRolloverStrategy>
		</RollingRandomAccessFile>
	</Appenders>
	<Loggers>
		<AsyncLogger name="com.infiniteautomation.tsdb.corruption" level="info" additivity="false">
		  <AppenderRef ref="corruption"/>
		</AsyncLogger>
		<AsyncLogger name="com.infiniteautomation.tsdb.compression" level="info" additivity="false">
		  <AppenderRef ref="compression"/>
		</AsyncLogger>
		<AsyncLogger name="com.infiniteautomation.tsdb.reverser" level="info" additivity="false">
		  <AppenderRef ref="reverser"/>
		</AsyncLogger>
		<AsyncLogger name="script" includeLocation="${mango:logger.script.includeLocation}" level="${mango:logger.script.level}" additivity="false">
			<AppenderRef ref="script" level="${mango:appender.script.level}" />
		</AsyncLogger>
		<AsyncLogger name="com.serotonin.m2m2" includeLocation="${mango:logger.mango.includeLocation}" level="${mango:logger.mango.level}"/>
		<AsyncLogger name="com.infiniteautomation" includeLocation="${mango:logger.mango.includeLocation}" level="${mango:logger.mango.level}"/>
		<AsyncLogger name="com.radixiot" includeLocation="${mango:logger.mango.includeLocation}" level="${mango:logger.mango.level}"/>
		<AsyncRoot includeLocation="${mango:logger.root.includeLocation}" level="${mango:logger.root.level}">
			<AppenderRef ref="logfile" level="${mango:appender.logfile.level}" />
			<AppenderRef ref="stdout" level="${mango:appender.stdout.level}" />
		</AsyncRoot>
	</Loggers>
</Configuration>
