Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagexml
titleController, Agent log4j2.xml
linenumberstrue
collapsetrue
<?xml version="1.0" encoding="UTF-8"?>
<configuration<Configuration status="WARN" shutdownHook="disable">
        <properties>
                <property 	<Properties>
		<Property name="LogLevel">INFO</property>
                TimeZone">${env:SCHEDULER_TZ:-Etc/UTC}</Property>
		<Property name="LogDir">${env:SCHEDULER_LOGS:-logs}</Property>
		<Property name="LogBasename">${env:SCHEDULER_APPNAME:-controller}</Property>
		
		<Property name="RetainDays">30d</Property>
                		<Property name="MaxSizeOfRolledOverFiles">5GB</Property>
                		<Property name="MaxSizePerFile">100MB</Property>
		
		<!-- Log level of the Root Logger.  </properties>

        <appenders>
                <console name="-->
		<Property name="RootLogLevel">INFO</Property>
		
		<!-- Configuration for a 2nd debug log file (OFF|DEBUG|TRACE) 
			 If this value is set to DEBUG or TRACE then the above 
			 RootLogLevel has to have the same value.
		-->
		<Property name="LogLevelOfDebugLog">OFF</Property>
		
	</Properties>
	
	<Appenders>
		<Console name="console" target="SYSTEM_ERR">
			<PatternLayout                        <patternLayout pattern="%highlight{%d{EE HHpattern="%highlight{%d{EE HH:mm:ss.SSS}{${TimeZone}} %-5level{INFO=info, DEBUG=debug, TRACE=trace} %logger - %message}{WARN=magenta}%n"/>
                		</console>Console>

                <rollingRandomAccessFile		
		<RollingRandomAccessFile name="fileInfo"
                                				fileName="${env:SCHEDULER_LOGSLogDir}/${env:SCHEDULER_APPNAMELogBasename}.log"
                                				filePattern="${env:SCHEDULER_LOGSLogDir}/${env:SCHEDULER_APPNAMELogBasename}-%d{yyyy-MM-dd}-%i.log.gz"
                                				immediateFlush="false">
			<PatternLayout                        <patternLayout pattern="%d{yyyy-MM-dd HH:mm:ss,SSSZ} %-5level{pattern="%d{ISO8601}{${TimeZone}} %-5level{INFO=info, DEBUG=debug, TRACE=trace} %logger - %message%n"
                                        charset="					charset="UTF-8"/>
                        <policies>
                                <onStartupTriggeringPolicy/>
                                <timeBasedTriggeringPolicy/>
                                <sizeBasedTriggeringPolicy size="${MaxSizePerFile}"/>
                        </policies>
                        <DefaultRolloverStrategy fileIndex="nomax">
                                <Delete basePath="${env:SCHEDULER_LOGS}">
                                        <IfFileName glob="*/${env:SCHEDULER_APPNAME}-*.log.gz" />
                                        <IfAny>
                                                <IfLastModified age="${RetainDays}" />
                                                <IfAccumulatedFileSize exceeds="${MaxSizeOfRolledOverFiles}"/>
                                        </IfAny>
                                </Delete>
                        </DefaultRolloverStrategy>
                </rollingRandomAccessFile>

                <rollingRandomAccessFile name="fileDebug"
                                fileName="${env:SCHEDULER_LOGS}/${env:SCHEDULER_APPNAME}-debug.log"
                                filePattern="${env:SCHEDULER_LOGS}/${env:SCHEDULER_APPNAME}-debug-%d{yyyy-MM-dd}-%i.log.gz"
                                immediateFlush="false">
                        <patternLayout pattern="%d{yyyy-MM-dd HH:mm:ss,SSSZ} %-5level{INFO=info, DEBUG=debug, TRACE=trace} %logger - %message%n"
                                        charset="UTF-8"/>
                        <policies>
                                <onStartupTriggeringPolicy/>
                                <timeBasedTriggeringPolicy/>
                                <sizeBasedTriggeringPolicy size="${MaxSizePerFile}"/>
                        </policies>
                        <DefaultRolloverStrategy fileIndex="nomax">
                                <Delete basePath="${env:SCHEDULER_LOGS}">
                                        <IfFileName glob="*/${env:SCHEDULER_APPNAME}-debug-*.log.gz" />
                                        <IfAny>
                                                <IfLastModified age="${RetainDays}" />
                                                <IfAccumulatedFileSize exceeds="${MaxSizeOfRolledOverFiles}"/>
                                        </IfAny>
                                </Delete>
                                        </IfAny>
                                </Delete>
                        </DefaultRolloverStrategy>
                </rollingRandomAccessFile>
        </appenders>

        <loggers>
                <!-- logger name="js7" level="debug"/ -->
                <logger 			<Policies>
				<TimeBasedTriggeringPolicy/>
				<SizeBasedTriggeringPolicy size="${MaxSizePerFile}"/>
			</Policies>
			<DefaultRolloverStrategy fileIndex="nomax">
				<Delete basePath="${LogDir}">
					<IfFileName glob="*/${LogBasename}-*.log.gz" />
					<IfAny>
						<IfLastModified age="${RetainDays}" />
						<IfAccumulatedFileSize exceeds="${MaxSizeOfRolledOverFiles}"/>
					</IfAny>
				</Delete>
			</DefaultRolloverStrategy>
		</RollingRandomAccessFile>
		
		<RollingRandomAccessFile name="fileDebug"
				fileName="${LogDir}/${LogBasename}-debug.log"
				filePattern="${LogDir}/${LogBasename}-debug-%d{yyyy-MM-dd}-%i.log.gz"
				immediateFlush="false">
			<PatternLayout pattern="%d{ISO8601}{${TimeZone}} %-5level{INFO=info, DEBUG=debug, TRACE=trace} %logger - %message%n"
					charset="UTF-8"/>
			<Policies>
				<TimeBasedTriggeringPolicy/>
				<SizeBasedTriggeringPolicy size="${MaxSizePerFile}"/>
			</Policies>
			<DefaultRolloverStrategy fileIndex="nomax">
				<Delete basePath="${LogDir}">
					<IfFileName glob="*/${LogBasename}-*.log.gz" />
					<IfAny>
						<IfLastModified age="${RetainDays}" />
						<IfAccumulatedFileSize exceeds="${MaxSizeOfRolledOverFiles}"/>
					</IfAny>
				</Delete>
			</DefaultRolloverStrategy>
		</RollingRandomAccessFile>
	</Appenders>
	
	<Loggers>
		<Logger name="spray" level="INFO"/>
                <logger		<Logger name="akka" level="INFO"/>
                <logger		<Logger name="akka.event.slf4j.Slf4jLogger" level="WARN"/>
                <logger 		<Logger name="js7.common.akkahttp.web.auth.GateKeeper" level="ERROR"/>
                <root		<Root level="INFO${RootLogLevel}">
                        			<!--appenderRefAppenderRef ref="console" level="ERROR"/-->
                        <appenderRef ->
			<AppenderRef ref="fileInfo" level="INFO"/>
                        <appenderRef 			<AppenderRef ref="fileDebug" level="${LogLevelLogLevelOfDebugLog}"/>
                		</root>
        Root>
	</loggers>Loggers>
</configuration>Configuration>

Explanations:

  • To modify the time zone that is applied to log entries and to the point in time of log rotation modify <Property name="TimeZone">{Etc/UTC}<>Etc/UTC</Property>. The time zone is specified during installationthe startscript by setting the environment variable SCHEDULER_TZ.
  • To enable debug mode modify <property name="LogLevelRootLogLevel">INFO</property> to DEBUG. In addition modify the value of <property name="LogLevelOfDebugLog">OFF</property> to DEBUG.
  • To change the log retention period modify <Property name="RetainDays">30d</Property> to some other value. Consider to use the suffix d(ays), w(eeks), m(onths).
  • To limit the max. size of individual log files modify <Property name="MaxSizePerFile">100MB</Property> to some other value. Consider to use the units MB, GB.
  • To limit space consumption of all log files modify <Property name="MaxSizeOfRolledOverFiles">5GB</Property> to some other value. Consider to use the units MB, GB.

...