<?xml version="1.0" encoding="UTF-8"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements. See the NOTICE file distributed with this
  work for additional information regarding copyright ownership. The ASF
  licenses this file to You under the Apache License, Version 2.0 (the
  "License"); you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
  WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
  License for the specific language governing permissions and limitations
  under the License.
  -->
<!-- Config will be auto loaded every 60s -->
<configuration status="error" monitorInterval="60">
    <properties>
        <property name="LOG_PATH">logs</property>
        <property name="FILE_NAME">hugegraph-test</property>
    </properties>

    <appenders>
        <Console name="console" target="SYSTEM_OUT">
            <ThresholdFilter level="DEBUG" onMatch="ACCEPT" onMismatch="DENY"/>
            <PatternLayout pattern="%-d{yyyy-MM-dd HH:mm:ss} [%t] [%p] %c{1.} - %m%n"/>
        </Console>

        <!-- Normal server log config -->
        <RollingRandomAccessFile name="file" fileName="${LOG_PATH}/${FILE_NAME}.log"
            filePattern="${LOG_PATH}/$${date:yyyy-MM}/${FILE_NAME}-%d{yyyy-MM-dd}-%i.log"
            immediateFlush="false">
            <ThresholdFilter level="TRACE" onMatch="ACCEPT" onMismatch="DENY"/>
            <PatternLayout pattern="%-d{yyyy-MM-dd HH:mm:ss} [%t] [%p] %c{1.} - %m%n"/>
            <!-- Trigger after exceeding 1day or 50MB -->
            <Policies>
                <SizeBasedTriggeringPolicy size="50MB"/>
                <TimeBasedTriggeringPolicy interval="1" modulate="true" />
            </Policies>
            <!-- Keep 5 files per day & auto delete after over 2GB or 100 files -->
            <DefaultRolloverStrategy max="5">
                <Delete basePath="${LOG_PATH}" maxDepth="2">
                    <IfFileName glob="*/*.log"/>
                    <!-- Limit log amount & size -->
                    <IfAny>
                        <IfAccumulatedFileSize exceeds="2GB" />
                        <IfAccumulatedFileCount exceeds="100" />
                    </IfAny>
                </Delete>
            </DefaultRolloverStrategy>
        </RollingRandomAccessFile>

        <!-- Separate & compress audit log, buffer size is 512KB -->
        <RollingRandomAccessFile name="audit" fileName="${LOG_PATH}/audit-${FILE_NAME}.log"
            filePattern="${LOG_PATH}/$${date:yyyy-MM}/audit-${FILE_NAME}-%d{yyyy-MM-dd-HH}-%i.gz"
            bufferSize="524288" immediateFlush="false">
            <ThresholdFilter level="TRACE" onMatch="ACCEPT" onMismatch="DENY"/>
            <!-- Use simple format for audit log to speed up -->
            <PatternLayout pattern="%-d{yyyy-MM-dd HH:mm:ss} - %m%n"/>
            <!-- Trigger after exceeding 1hour or 500MB -->
            <Policies>
                <SizeBasedTriggeringPolicy size="500MB"/>
                <TimeBasedTriggeringPolicy interval="1" modulate="true" />
            </Policies>
            <!-- Keep 2 files per hour & auto delete [after 60 days] or [over 5GB or 500 files] -->
            <DefaultRolloverStrategy max="2">
                <Delete basePath="${LOG_PATH}" maxDepth="2">
                    <IfFileName glob="*/*.gz"/>
                    <IfLastModified age="60d"/>
                    <IfAny>
                        <IfAccumulatedFileSize exceeds="5GB" />
                        <IfAccumulatedFileCount exceeds="500" />
                    </IfAny>
                </Delete>
            </DefaultRolloverStrategy>
        </RollingRandomAccessFile>

        <!-- Slow query log config -->
        <RollingRandomAccessFile name="slowQueryLog" fileName="${LOG_PATH}/slow_query.log"
                                 filePattern="${LOG_PATH}/$${date:yyyy-MM}/slow_query_log-%d{yyyy-MM-dd}-%i.log"
                                 immediateFlush="false">
            <ThresholdFilter level="TRACE" onMatch="ACCEPT" onMismatch="DENY"/>
            <PatternLayout pattern="%-d{yyyy-MM-dd HH:mm:ss} [%t] [%p] %c{1.} - %m%n"/>
            <!-- Trigger after exceeding 1day or 50MB -->
            <Policies>
                <SizeBasedTriggeringPolicy size="50MB"/>
                <TimeBasedTriggeringPolicy interval="1" modulate="true" />
            </Policies>
            <!-- Keep 5 files per day & auto delete after over 2GB or 100 files -->
            <DefaultRolloverStrategy max="5">
                <Delete basePath="${LOG_PATH}" maxDepth="2">
                    <IfFileName glob="*/*.log"/>
                    <!-- Limit log amount & size -->
                    <IfAny>
                        <IfAccumulatedFileSize exceeds="2GB" />
                        <IfAccumulatedFileCount exceeds="100" />
                    </IfAny>
                </Delete>
            </DefaultRolloverStrategy>
        </RollingRandomAccessFile>
    </appenders>

    <loggers>
        <root level="INFO">
            <appender-ref ref="console"/>
            <appender-ref ref="file"/>
        </root>
        <logger name="org.apache.cassandra" level="INFO" additivity="false">
            <appender-ref ref="console"/>
            <appender-ref ref="file"/>
        </logger>
        <logger name="org.apache.hadoop" level="INFO" additivity="false">
            <appender-ref ref="console"/>
            <appender-ref ref="file"/>
        </logger>
        <logger name="org.apache.zookeeper" level="WARN" additivity="false">
            <appender-ref ref="console"/>
            <appender-ref ref="file"/>
        </logger>
        <logger name="com.datastax.driver" level="WARN" additivity="false">
            <appender-ref ref="console"/>
            <appender-ref ref="file"/>
        </logger>
        <logger name="com.alipay.sofa" level="WARN" additivity="false">
            <appender-ref ref="console"/>
            <appender-ref ref="file"/>
        </logger>
        <logger name="io.netty" level="INFO" additivity="false">
            <appender-ref ref="console"/>
            <appender-ref ref="file"/>
        </logger>
        <logger name="org.apache.commons" level="INFO" additivity="false">
            <appender-ref ref="console"/>
            <appender-ref ref="file"/>
        </logger>
        <!-- Use mixed async way to output logs -->
        <AsyncLogger name="org.apache.hugegraph" level="INFO" additivity="false">
            <appender-ref ref="console"/>
            <appender-ref ref="file"/>
        </AsyncLogger>
        <AsyncLogger name="org.apache.hugegraph.auth" level="INFO" additivity="false">
            <appender-ref ref="console"/>
            <appender-ref ref="audit"/>
        </AsyncLogger>
        <AsyncLogger name="org.apache.hugegraph.api.filter.AuthenticationFilter" level="INFO" additivity="false">
            <appender-ref ref="console"/>
            <appender-ref ref="audit"/>
        </AsyncLogger>
        <AsyncLogger name="org.apache.hugegraph.api.filter.AccessLogFilter" level="INFO" additivity="false">
            <appender-ref ref="console"/>
            <appender-ref ref="slowQueryLog"/>
        </AsyncLogger>
    </loggers>
</configuration>
