<?xml version="1.0" encoding="UTF-8"?> <Configuration status="info" packages="net.corda.common.logging" shutdownHook="disable"> <Properties> <Property name="log-path">${sys:log-path:-logs}</Property> <Property name="log-name">node-${hostName}</Property> <Property name="diagnostic-log-name">diagnostic-${hostName}</Property> <Property name="archive">${log-path}/archive</Property> <Property name="defaultLogLevel">${sys:defaultLogLevel:-info}</Property> <Property name="consoleLogLevel">${sys:consoleLogLevel:-error}</Property> </Properties> <Appenders> <ScriptAppenderSelector name="Console-Selector"> <Script language="nashorn"><![CDATA[ var System = Java.type('java.lang.System'); var level = System.getProperty("consoleLogLevel"); var enabled = System.getProperty("consoleLoggingEnabled"); enabled == "true" && (level == "debug" || level == "trace") ? "Console-Debug-Appender" : "Console-Appender"; ]]></Script> <AppenderSet> <!-- The default console appender - prints no exception information --> <Console name="Console-Appender" target="SYSTEM_OUT"> <PatternLayout> <ScriptPatternSelector defaultPattern="%highlight{[%level{length=5}] %date{HH:mm:ssZ} [%t] %c{2}.%method - %msg%n%throwable{0}}{INFO=white,WARN=red,FATAL=bright red}"> <Script name="MDCSelector" language="javascript"><![CDATA[ result = null; if (!logEvent.getContextData().size() == 0) { result = "WithMDC"; } else { result = null; } result; ]]> </Script> <PatternMatch key="WithMDC" pattern="%highlight{[%level{length=5}] %date{HH:mm:ssZ} [%t] %c{2}.%method - %msg %X%n%throwable{0}}{INFO=white,WARN=red,FATAL=bright red}"/> </ScriptPatternSelector> </PatternLayout> </Console> <!-- The console appender when debug or trace level logging is specified. Prints full stack trace --> <Console name="Console-Debug-Appender" target="SYSTEM_OUT"> <PatternLayout> <ScriptPatternSelector defaultPattern="%highlight{[%level{length=5}] %date{HH:mm:ssZ} [%t] %c{2}.%method - %msg%n%throwable{}}{INFO=white,WARN=red,FATAL=bright red}"> <Script name="MDCSelector" language="javascript"><![CDATA[ result = null; if (!logEvent.getContextData().size() == 0) { result = "WithMDC"; } else { result = null; } result; ]]> </Script> <PatternMatch key="WithMDC" pattern="%highlight{[%level{length=5}] %date{HH:mm:ssZ} [%t] %c{2}.%method - %msg %X%n%throwable{}}{INFO=white,WARN=red,FATAL=bright red}"/> </ScriptPatternSelector> </PatternLayout> </Console> </AppenderSet> </ScriptAppenderSelector> <!-- Required for printBasicInfo --> <Console name="Console-Appender-Println" target="SYSTEM_OUT"> <PatternLayout pattern="%msg%n%throwable{0}" /> </Console> <!-- Will generate up to 100 log files for a given day. During every rollover it will delete those that are older than 60 days, but keep the most recent 10 GB --> <RollingRandomAccessFile name="RollingFile-Appender" fileName="${log-path}/${log-name}.log" filePattern="${archive}/${log-name}.%date{yyyy-MM-dd}-%i.log.gz"> <PatternLayout> <ScriptPatternSelector defaultPattern="[%-5level] %date{ISO8601}{UTC}Z [%t] %c{2}.%method - %msg%n"> <Script name="MDCSelector" language="javascript"><![CDATA[ result = null; if (!logEvent.getContextData().size() == 0) { result = "WithMDC"; } else { result = null; } result; ]]> </Script> <PatternMatch key="WithMDC" pattern="[%-5level] %date{ISO8601}{UTC}Z [%t] %c{2}.%method - %msg %X%n"/> </ScriptPatternSelector> </PatternLayout> <Policies> <TimeBasedTriggeringPolicy/> <SizeBasedTriggeringPolicy size="100MB"/> </Policies> <DefaultRolloverStrategy min="1" max="100"> <Delete basePath="${archive}" maxDepth="1"> <IfFileName glob="${log-name}*.log.gz"/> <IfLastModified age="60d"> <IfAny> <IfAccumulatedFileSize exceeds="10 GB"/> </IfAny> </IfLastModified> </Delete> </DefaultRolloverStrategy> </RollingRandomAccessFile> <!-- Will generate up to 100 log files for a given day. During every rollover it will delete those that are older than 60 days, but keep the most recent 10 GB --> <RollingRandomAccessFile name="Diagnostic-RollingFile-Appender" fileName="${log-path}/${diagnostic-log-name}.log" filePattern="${archive}/${diagnostic-log-name}.%date{yyyy-MM-dd}-%i.log.gz"> <PatternLayout> <ScriptPatternSelector defaultPattern="[%-5level] %date{ISO8601}{UTC}Z [%t] %c{2}.%method - %msg%n"> <Script name="MDCSelector" language="javascript"><![CDATA[ result = null; if (!logEvent.getContextData().size() == 0) { result = "WithMDC"; } else { result = null; } result; ]]> </Script> <PatternMatch key="WithMDC" pattern="[%-5level] %date{ISO8601}{UTC}Z [%t] %c{2}.%method - %msg %X%n"/> </ScriptPatternSelector> </PatternLayout> <Policies> <TimeBasedTriggeringPolicy/> <SizeBasedTriggeringPolicy size="100MB"/> </Policies> <DefaultRolloverStrategy min="1" max="100"> <Delete basePath="${archive}" maxDepth="1"> <IfFileName glob="${log-name}*.log.gz"/> <IfLastModified age="60d"> <IfAny> <IfAccumulatedFileSize exceeds="10 GB"/> </IfAny> </IfLastModified> </Delete> </DefaultRolloverStrategy> </RollingRandomAccessFile> <RollingFile name="Checkpoint-Agent-RollingFile-Appender" fileName="${log-path}/checkpoints_agent-${date:yyyyMMdd-HHmmss}.log" filePattern="${archive}/checkpoints_agent.%date{yyyy-MM-dd}-%i.log.gz"> <PatternLayout pattern="[%-5level] %date{ISO8601}{UTC}Z [%t] %c{2}.%method - %msg%n"/> <Policies> <TimeBasedTriggeringPolicy/> <SizeBasedTriggeringPolicy size="100MB"/> </Policies> <DefaultRolloverStrategy min="1" max="100"> <Delete basePath="${archive}" maxDepth="1"> <IfFileName glob="${log-name}*.log.gz"/> <IfLastModified age="60d"> <IfAny> <IfAccumulatedFileSize exceeds="10 GB"/> </IfAny> </IfLastModified> </Delete> </DefaultRolloverStrategy> </RollingFile> <Rewrite name="Console-ErrorCode-Selector"> <AppenderRef ref="Console-Selector"/> <ErrorCodeRewritePolicy/> </Rewrite> <Rewrite name="Console-ErrorCode-Appender-Println"> <AppenderRef ref="Console-Appender-Println"/> <ErrorCodeRewritePolicy/> </Rewrite> <Rewrite name="RollingFile-ErrorCode-Appender"> <AppenderRef ref="RollingFile-Appender"/> <ErrorCodeRewritePolicy/> </Rewrite> <Rewrite name="Diagnostic-RollingFile-ErrorCode-Appender"> <AppenderRef ref="Diagnostic-RollingFile-Appender"/> <ErrorCodeRewritePolicy/> </Rewrite> </Appenders> <Loggers> <Root level="${defaultLogLevel}"> <AppenderRef ref="Console-ErrorCode-Selector" level="${consoleLogLevel}"/> <AppenderRef ref="RollingFile-ErrorCode-Appender"/> </Root> <Logger name="BasicInfo" additivity="false"> <AppenderRef ref="Console-ErrorCode-Appender-Println"/> <AppenderRef ref="RollingFile-ErrorCode-Appender"/> </Logger> <Logger name="org.hibernate" level="warn" additivity="false"> <AppenderRef ref="Diagnostic-RollingFile-ErrorCode-Appender"/> </Logger> <Logger name="org.hibernate.SQL" level="info" additivity="false"> <AppenderRef ref="Console-ErrorCode-Selector"/> <AppenderRef ref="RollingFile-ErrorCode-Appender"/> </Logger> <Logger name="org.apache.activemq.artemis.core.server" level="error" additivity="false"> <AppenderRef ref="Console-ErrorCode-Selector"/> <AppenderRef ref="RollingFile-ErrorCode-Appender"/> </Logger> <Logger name="org.jolokia" additivity="true" level="warn"> <AppenderRef ref="Console-ErrorCode-Appender-Println"/> <AppenderRef ref="RollingFile-ErrorCode-Appender"/> </Logger> <Logger name="CheckpointAgent" level="debug" additivity="false"> <AppenderRef ref="Checkpoint-Agent-RollingFile-Appender"/> </Logger> </Loggers> </Configuration>