<?xml version="1.0" encoding="UTF-8"?>
<!--
  ~ R3 Proprietary and Confidential
  ~
  ~ Copyright (c) 2018 R3 Limited.  All rights reserved.
  ~
  ~ The intellectual and technical concepts contained herein are proprietary to R3 and its suppliers and are protected by trade secret law.
  ~
  ~ Distribution of this file or any portion thereof via any medium without the express permission of R3 is strictly prohibited.
  -->

<Configuration status="info">

    <Properties>
        <Property name="log-path">logs</Property>
        <Property name="log-name">node-${hostName}</Property>
        <Property name="archive">${sys:log-path}/archive</Property>
        <Property name="consoleLogLevel">error</Property>
        <Property name="defaultLogLevel">info</Property>
    </Properties>

    <ThresholdFilter level="trace"/>

    <Appenders>
        <Console name="Console-Appender" target="SYSTEM_OUT">
            <PatternLayout pattern="%highlight{%level{length=1} %date{HH:mm:ssZ} [%t] %c{2}.%method - %msg %X%n}{INFO=white,WARN=red,FATAL=bright red}" />
        </Console>

        <!-- Required for printBasicInfo -->
        <Console name="Console-Appender-Println" target="SYSTEM_OUT">
            <PatternLayout pattern="%msg%n" />
        </Console>

        <!-- Will generate up to 10 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 -->
        <RollingFile name="RollingFile-Appender"
                     fileName="${sys:log-path}/${log-name}.log"
                     filePattern="${archive}/${log-name}.%date{yyyy-MM-dd}-%i.log.gz">

            <PatternLayout pattern="[%-5level] %date{ISO8601}{UTC}Z [%t] %c{2}.%method - %msg %X%n"/>

            <Policies>
                <TimeBasedTriggeringPolicy/>
                <SizeBasedTriggeringPolicy size="10MB"/>
            </Policies>

            <DefaultRolloverStrategy min="1" max="10">
                <Delete basePath="${archive}" maxDepth="1">
                    <IfFileName glob="${log-name}*.log.gz"/>
                    <IfLastModified age="60d">
                        <IfAny>
                            <IfAccumulatedFileSize exceeds="10 GB"/>
                        </IfAny>
                    </IfLastModified>
                </Delete>
            </DefaultRolloverStrategy>

        </RollingFile>
    </Appenders>

    <Loggers>
        <Root level="${sys:defaultLogLevel}">
            <AppenderRef ref="Console-Appender" level="${sys:consoleLogLevel}"/>
            <AppenderRef ref="RollingFile-Appender" />
        </Root>
        <Logger name="BasicInfo" additivity="false">
            <AppenderRef ref="Console-Appender-Println"/>
            <AppenderRef ref="RollingFile-Appender" />
        </Logger>
        <Logger name="org.apache.activemq.artemis.core.server" level="error" additivity="false">
            <AppenderRef ref="RollingFile-Appender"/>
        </Logger>
        <Logger name="org.jolokia" additivity="true" level="warn">
            <AppenderRef ref="Console-Appender-Println"/>
            <AppenderRef ref="RollingFile-Appender" />
        </Logger>
    </Loggers>
</Configuration>