<?xml version="1.0" encoding="UTF-8"?> | |
<!-- | |
================================================================================ | |
eCOMP Portal SDK | |
================================================================================ | |
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. | |
================================================================================ | |
--> | |
<configuration scan="true" scanPeriod="3 seconds" debug="true"> | |
<!-- | |
Logback files for the ECOMP SDK Application "ecomp_app" | |
are created in directory ${catalina.base}/logs/ecomp_app; | |
e.g., apache-tomcat-8.0.35/logs/ecomp_app/application.log | |
--> | |
<!--<jmxConfigurator /> --> | |
<!-- specify the component name --> | |
<property name="componentName" value="ep_sdk_app"></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" /> | |
--> | |
<!-- 1610 Logging Fields Format Revisions --> | |
<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" /> | |
<!-- Example evaluator filter applied against console appender --> | |
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> | |
<encoder> | |
<pattern>${defaultLoggerPattern}</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}.%d{yyyy-MM-dd}.log.zip</fileNamePattern> | |
<!-- keep 30 days' worth of history capped at 3GB total size --> | |
<maxHistory>30</maxHistory> | |
<totalSizeCap>3GB</totalSizeCap> | |
</rollingPolicy> | |
<encoder> | |
<pattern>${applicationLoggerPattern}</pattern> | |
</encoder> | |
<filter class="org.openecomp.portalapp.util.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 rollover --> | |
<fileNamePattern>${logDirectory}/${auditLogName}.%d{yyyy-MM-dd}.log.zip</fileNamePattern> | |
<!-- keep 30 days' worth of history capped at 3GB total size --> | |
<maxHistory>30</maxHistory> | |
<totalSizeCap>3GB</totalSizeCap> | |
</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 rollover --> | |
<fileNamePattern>${logDirectory}/${metricsLogName}.%d{yyyy-MM-dd}.log.zip</fileNamePattern> | |
<!-- keep 30 days' worth of history capped at 3GB total size --> | |
<maxHistory>30</maxHistory> | |
<totalSizeCap>3GB</totalSizeCap> | |
</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 rollover --> | |
<fileNamePattern>${logDirectory}/${errorLogName}.%d{yyyy-MM-dd}.log.zip</fileNamePattern> | |
<!-- keep 30 days' worth of history capped at 3GB total size --> | |
<maxHistory>30</maxHistory> | |
<totalSizeCap>3GB</totalSizeCap> | |
</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 rollover --> | |
<fileNamePattern>${logDirectory}/${debugLogName}.%d{yyyy-MM-dd}.log.zip</fileNamePattern> | |
<!-- keep 30 days' worth of history capped at 3GB total size --> | |
<maxHistory>30</maxHistory> | |
<totalSizeCap>3GB</totalSizeCap> | |
</rollingPolicy> | |
<encoder> | |
<pattern>${defaultLoggerPattern}</pattern> | |
</encoder> | |
</appender> | |
<appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender"> | |
<queueSize>256</queueSize> | |
<appender-ref ref="EELFDebug" /> | |
</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="DEBUG"> | |
<appender-ref ref="asyncEELF" /> | |
</root> | |
</configuration> |