<?xml version="1.0" encoding="UTF-8"?>
        <!--/*-
                * ============LICENSE_START=======================================================
                * OSAM Core
                * ================================================================================
                * Copyright (C) 2018 AT&T
                * ================================================================================
                * Licensed 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.
                * ============LICENSE_END=========================================================
                */
        -->

<configuration scan="true" scanPeriod="3 seconds" debug="true">
  <!--  specify the component name -->
  <property name="componentName" value="vid"></property>
  
  <!--  specify the base path of the log directory -->
  <property name="logDirPrefix" value="${VID_LOG_DIR}"></property>
  
  <!-- The directories where logs are written -->
  <property name="logDirectory" value="${logDirPrefix}/${componentName}" />
  <!-- Can easily relocate debug logs by modifying this path. -->
  <property name="debugLogDirectory" value="${logDirPrefix}/${componentName}" />
  
  <!--  log file names -->
  <property name="generalLogName" value="application" />
  <property name="errorLogName" value="error" />
  <property name="metricsLogName" value="metrics" />
  <property name="auditLogName" value="audit" />
  <property name="debugLogName" value="debug" />
  <!--
  These loggers are not used in code (yet). 
  <property name="securityLogName" value="security" />
  <property name="policyLogName" value="policy" />
  <property name="performanceLogName" value="performance" />
  <property name="serverLogName" value="server" />
   -->
   
  <property name="defaultPattern" value="%date{ISO8601}|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{VirtualServerName}|%X{ServiceName}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ServerFQDN}|%X{RemoteHost}|%X{ClassName}|%X{Timer}| %msg%n" />
  <property name="debugLoggerPattern" value="%date{ISO8601}|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{VirtualServerName}|%X{ServiceName}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ServerFQDN}|%X{RemoteHost}|%X{ClassName}|%X{Timer}| %msg%n" />
  <!-- <property name="debugLoggerPattern" value="%date{ISO8601}|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{ServiceName}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ServerFQDN}|%X{RemoteHost}|%X{Timer}|[%caller{3}]|%msg%n" />-->
  
  <!-- Example evaluator filter applied against console appender -->
  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
      <pattern>${defaultPattern}</pattern>
    </encoder>
  </appender>

  <!-- ============================================================================ -->
  <!-- EELF Appenders -->
  <!-- ============================================================================ -->

  <!-- The EELFAppender is used to record events to the general application 
    log -->
    
    
  <appender name="EELF"
    class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${logDirectory}/${generalLogName}.log</file>
    <rollingPolicy
      class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
      <fileNamePattern>${logDirectory}/${generalLogName}.%i.log.zip
      </fileNamePattern>
      <minIndex>1</minIndex>
      <maxIndex>9</maxIndex>
    </rollingPolicy>
    <triggeringPolicy
      class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
      <maxFileSize>5MB</maxFileSize>
    </triggeringPolicy>
    <encoder>
      <pattern>${defaultPattern}</pattern>
    </encoder>
    <filter class="org.onap.portalapp.util.CustomLoggingFilter" />
  </appender>
  
  <appender name="asyncEELF" class="ch.qos.logback.classic.AsyncAppender">
    <queueSize>256</queueSize>
    <appender-ref ref="EELF" />
  </appender>

  <!-- EELF Security Appender. This appender is used to record security events 
    to the security log file. Security events are separate from other loggers 
    in EELF so that security log records can be captured and managed in a secure 
    way separate from the other logs. This appender is set to never discard any 
    events. -->
  <!--     
  <appender name="EELFSecurity"
    class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${logDirectory}/${securityLogName}.log</file>
    <rollingPolicy
      class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
      <fileNamePattern>${logDirectory}/${securityLogName}.%i.log.zip
      </fileNamePattern>
      <minIndex>1</minIndex>
      <maxIndex>9</maxIndex>
    </rollingPolicy>
    <triggeringPolicy
      class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
      <maxFileSize>5MB</maxFileSize>
    </triggeringPolicy>
    <encoder>
      <pattern>${defaultPattern}</pattern>
    </encoder>
  </appender>
  
  <appender name="asyncEELFSecurity" class="ch.qos.logback.classic.AsyncAppender">
    <queueSize>256</queueSize>
    <discardingThreshold>0</discardingThreshold>
    <appender-ref ref="EELFSecurity" />
  </appender>
   -->
   
  <!-- EELF Performance Appender. This appender is used to record performance 
    records. -->
  <!--
  <appender name="EELFPerformance"
    class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${logDirectory}/${performanceLogName}.log</file>
    <rollingPolicy
      class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
      <fileNamePattern>${logDirectory}/${performanceLogName}.%i.log.zip
      </fileNamePattern>
      <minIndex>1</minIndex>
      <maxIndex>9</maxIndex>
    </rollingPolicy>
    <triggeringPolicy
      class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
      <maxFileSize>5MB</maxFileSize>
    </triggeringPolicy>
    <encoder>
      <outputPatternAsHeader>true</outputPatternAsHeader>
      <pattern>${defaultPattern}</pattern>
    </encoder>
  </appender>
  <appender name="asyncEELFPerformance" class="ch.qos.logback.classic.AsyncAppender">
    <queueSize>256</queueSize>
    <appender-ref ref="EELFPerformance" />
  </appender>
  -->

  <!-- EELF Server Appender. This appender is used to record Server related 
    logging events. The Server logger and appender are specializations of the 
    EELF application root logger and appender. This can be used to segregate Server 
    events from other components, or it can be eliminated to record these events 
    as part of the application root log. -->
  <!--
  <appender name="EELFServer"
    class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${logDirectory}/${serverLogName}.log</file>
    <rollingPolicy
      class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
      <fileNamePattern>${logDirectory}/${serverLogName}.%i.log.zip
      </fileNamePattern>
      <minIndex>1</minIndex>
      <maxIndex>9</maxIndex>
    </rollingPolicy>
    <triggeringPolicy
      class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
      <maxFileSize>5MB</maxFileSize>
    </triggeringPolicy>
    <encoder>
        <pattern>${defaultPattern}</pattern>
    </encoder>
  </appender>
  <appender name="asyncEELFServer" class="ch.qos.logback.classic.AsyncAppender">
    <queueSize>256</queueSize>
    <appender-ref ref="EELFServer" />
  </appender>
   -->
  
  <!-- EELF Policy Appender. This appender is used to record Policy engine 
    related logging events. The Policy logger and appender are specializations 
    of the EELF application root logger and appender. This can be used to segregate 
    Policy engine events from other components, or it can be eliminated to record 
    these events as part of the application root log. -->
  <!--
  <appender name="EELFPolicy"
    class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${logDirectory}/${policyLogName}.log</file>
    <rollingPolicy
      class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
      <fileNamePattern>${logDirectory}/${policyLogName}.%i.log.zip
      </fileNamePattern>
      <minIndex>1</minIndex>
      <maxIndex>9</maxIndex>
    </rollingPolicy>
    <triggeringPolicy
      class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
      <maxFileSize>5MB</maxFileSize>
    </triggeringPolicy>
    <encoder>
        <pattern>${defaultPattern}</pattern>
    </encoder>
  </appender>
  <appender name="asyncEELFPolicy" class="ch.qos.logback.classic.AsyncAppender">
    <queueSize>256</queueSize>
    <appender-ref ref="EELFPolicy" />
  </appender>
  -->
  
  <!-- EELF Audit Appender. This appender is used to record audit engine 
    related logging events. The audit logger and appender are specializations 
    of the EELF application root logger and appender. This can be used to segregate 
    Policy engine events from other components, or it can be eliminated to record 
    these events as part of the application root log. -->
    
  <appender name="EELFAudit"
    class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${logDirectory}/${auditLogName}.log</file>
    <rollingPolicy
      class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
      <fileNamePattern>${logDirectory}/${auditLogName}.%i.log.zip
      </fileNamePattern>
      <minIndex>1</minIndex>
      <maxIndex>9</maxIndex>
    </rollingPolicy>
    <triggeringPolicy
      class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
      <maxFileSize>5MB</maxFileSize>
    </triggeringPolicy>
    <encoder>
         <pattern>${defaultPattern}</pattern>
    </encoder>
  </appender>
  <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender">
    <queueSize>256</queueSize>
    <appender-ref ref="EELFAudit" />
  </appender>

  <appender name="EELFMetrics"
    class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${logDirectory}/${metricsLogName}.log</file>
    <rollingPolicy
      class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
      <fileNamePattern>${logDirectory}/${metricsLogName}.%i.log.zip
      </fileNamePattern>
      <minIndex>1</minIndex>
      <maxIndex>9</maxIndex>
    </rollingPolicy>
    <triggeringPolicy
      class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
      <maxFileSize>5MB</maxFileSize>
    </triggeringPolicy>
    <encoder>
      <!-- <pattern>"%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - 
        %msg%n"</pattern> -->
      <pattern>${defaultPattern}</pattern>
    </encoder>
  </appender>
  
  
  <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender">
    <queueSize>256</queueSize>
    <appender-ref ref="EELFMetrics"/>
  </appender>
   
  <appender name="EELFError"
    class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${logDirectory}/${errorLogName}.log</file>
    <rollingPolicy
      class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
      <fileNamePattern>${logDirectory}/${errorLogName}.%i.log.zip
      </fileNamePattern>
      <minIndex>1</minIndex>
      <maxIndex>9</maxIndex>
    </rollingPolicy>
    <triggeringPolicy
      class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
      <maxFileSize>5MB</maxFileSize>
    </triggeringPolicy>
    <encoder>
      <pattern>${defaultPattern}</pattern>
    </encoder>
  </appender>
  
  <appender name="asyncEELFError" class="ch.qos.logback.classic.AsyncAppender">
    <queueSize>256</queueSize>
    <appender-ref ref="EELFError"/>
  </appender>
  
   <appender name="EELFDebug"
    class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${debugLogDirectory}/${debugLogName}.log</file>
    <rollingPolicy
      class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
      <fileNamePattern>${debugLogDirectory}/${debugLogName}.%i.log.zip
      </fileNamePattern>
      <minIndex>1</minIndex>
      <maxIndex>9</maxIndex>
    </rollingPolicy>
    <triggeringPolicy
      class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
      <maxFileSize>5MB</maxFileSize>
    </triggeringPolicy>
    <encoder>
      <pattern>${debugLoggerPattern}</pattern>
    </encoder>
  </appender>
  
  <appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender">
    <queueSize>256</queueSize>
    <appender-ref ref="EELFDebug" />
    <includeCallerData>true</includeCallerData>
  </appender>
 
  
  <!-- ============================================================================ -->
  <!--  EELF loggers -->
  <!-- ============================================================================ -->
  <logger name="com.att.eelf" level="debug" additivity="false">
    <appender-ref ref="asyncEELF" />
  </logger>
  
  <!--
  <logger name="com.att.eelf.security" level="info" additivity="false">
    <appender-ref ref="asyncEELFSecurity" />
  </logger>
  <logger name="com.att.eelf.perf" level="info" additivity="false">
    <appender-ref ref="asyncEELFPerformance" />
  </logger>
  <logger name="com.att.eelf.server" level="info" additivity="false">
    <appender-ref ref="asyncEELFServer" />
  </logger>
  <logger name="com.att.eelf.policy" level="info" additivity="false">
    <appender-ref ref="asyncEELFPolicy" />
  </logger>
  -->
  
  <logger name="com.att.eelf.audit" level="info" additivity="false">
    <appender-ref ref="asyncEELFAudit" />
  </logger>
  
  <logger name="com.att.eelf.metrics" level="info" additivity="false">
        <appender-ref ref="asyncEELFMetrics" />
  </logger>
    
  <logger name="com.att.eelf.error" level="info" additivity="false">
  	<appender-ref ref="asyncEELFError" />
  </logger>
  
   <logger name="com.att.eelf.debug" level="debug" additivity="false">
        <appender-ref ref="asyncEELFDebug" />
  </logger>
  
    
  <root level="${VID_LOG_LEVEL}">
    <appender-ref ref="asyncEELF" />
  </root>

</configuration>
