[PORTAL-7] Rebase
[portal.git] / ecomp-portal-BE-os / src / main / resources / logback.xml
diff --git a/ecomp-portal-BE-os/src/main/resources/logback.xml b/ecomp-portal-BE-os/src/main/resources/logback.xml
new file mode 100644 (file)
index 0000000..0c0d764
--- /dev/null
@@ -0,0 +1,285 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ================================================================================
+  eCOMP Portal
+  ================================================================================
+  Copyright (C) 2017 AT&T Intellectual Property
+  ================================================================================
+  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.
+  ================================================================================
+  -->
+
+<!DOCTYPE xml>
+<configuration scan="true" scanPeriod="3 seconds" debug="true">
+       <!-- Log-back files for the ECOMP Portal "ecompportal" are created in directory 
+               ${catalina.base}/logs/ecompportal; e.g., apache-tomcat-8.0.35/logs/ecompportal/application.log -->
+       <!--<jmxConfigurator /> -->
+
+       <!-- specify the component name -->
+       <property name="componentName" value="ecompportal"></property>
+
+       <!-- specify the base path of the log directory -->
+       <property name="logDirPrefix" value="${catalina.base}/logs"></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" /> -->
+
+       <!-- ServerFQDN=Server,  -->
+       <property name="auditLoggerPattern"
+               value="%X{AuditLogBeginTimestamp}|%X{AuditLogEndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{VirtualServerName}|%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{ClientIPAddress}|%X{ClassName}|%X{Unused}|%X{ProcessKey}|%X{CustomField1}|%X{CustomField2}|%X{CustomField3}|%X{CustomField4}| %msg%n" />
+       
+       <property name="metricsLoggerPattern"
+               value="%X{MetricsLogBeginTimestamp}|%X{MetricsLogEndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{VirtualServerName}|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{ClientIPAddress}|%X{ClassName}|%X{Unused}|%X{ProcessKey}|%X{TargetVisualEntity}|%X{CustomField1}|%X{CustomField2}|%X{CustomField3}|%X{CustomField4}| %msg%n" />
+       
+       <property name="errorLoggerPattern"
+               value="%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{RequestId}|%thread|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{ClassName}|%X{AlertSeverity}|%X{ErrorCode}|%X{ErrorDescription}| %msg%n" />
+       
+       <property name="defaultLoggerPattern"
+               value="%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{RequestId}|%thread|%X{ClassName}| %msg%n" />
+       
+       <!-- use %class so library logging calls yield their class name -->
+       <property name="applicationLoggerPattern"
+               value="%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{RequestId}|%thread|%class{36}| %msg%n" />
+       
+       <!--    
+       <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>${applicationLoggerPattern}</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.TimeBasedRollingPolicy">
+                       <!-- daily rollover -->
+                       <fileNamePattern>${logDirectory}/${generalLogName}.log.%d{yyyy-MM-dd}.zip
+                       </fileNamePattern>
+                       <maxHistory>30</maxHistory>
+               </rollingPolicy>
+               <encoder>
+                       <pattern>${applicationLoggerPattern}</pattern>
+               </encoder>
+               <filter class="org.openecomp.portalapp.portal.utils.CustomLoggingFilter" />
+       </appender>
+
+       <appender name="asyncEELF" class="ch.qos.logback.classic.AsyncAppender">
+               <queueSize>256</queueSize>
+               <!-- Class name is part of caller data -->
+       <includeCallerData>true</includeCallerData>
+               <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.TimeBasedRollingPolicy">
+                       <!-- daily roll over -->
+                       <fileNamePattern>${logDirectory}/${auditLogName}.log.%d{yyyy-MM-dd}.zip
+                       </fileNamePattern>
+                       <maxHistory>30</maxHistory>
+               </rollingPolicy>
+               <encoder>
+                       <pattern>${auditLoggerPattern}</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.TimeBasedRollingPolicy">
+                       <!-- daily roll over -->
+                       <fileNamePattern>${logDirectory}/${metricsLogName}.log.%d{yyyy-MM-dd}.zip
+                       </fileNamePattern>
+                       <maxHistory>30</maxHistory>
+               </rollingPolicy>
+               <encoder>
+                       <pattern>${metricsLoggerPattern}</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.TimeBasedRollingPolicy">
+                       <!-- daily roll over -->
+                       <fileNamePattern>${logDirectory}/${errorLogName}.log.%d{yyyy-MM-dd}.zip
+                       </fileNamePattern>
+                       <maxHistory>30</maxHistory>
+               </rollingPolicy>
+               <encoder>
+                       <pattern>${errorLoggerPattern}</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.TimeBasedRollingPolicy">
+                       <!-- daily roll over -->
+                       <fileNamePattern>${logDirectory}/${debugLogName}.log.%d{yyyy-MM-dd}.zip
+                       </fileNamePattern>
+                       <maxHistory>30</maxHistory>
+               </rollingPolicy>
+               <encoder>
+                       <pattern>${defaultLoggerPattern}</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="info" 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="INFO">
+               <appender-ref ref="asyncEELF" />
+       </root>
+
+</configuration>