diff options
6 files changed, 194 insertions, 11 deletions
diff --git a/services/activity-spec/activity-spec-web/Dockerfile b/services/activity-spec/activity-spec-web/Dockerfile index 9d8bbeaf1b..3ef0ef3eb1 100644 --- a/services/activity-spec/activity-spec-web/Dockerfile +++ b/services/activity-spec/activity-spec-web/Dockerfile @@ -6,6 +6,8 @@ EXPOSE 5005 ARG ARTIFACT_VERSION +ENV LOGBACK_FILE_DIR /etc/onap/activity-spec/be/ + # See https://hub.docker.com/_/jetty/ ARG WEBAPPS_DIR=${JETTY_BASE}/webapps/ @@ -15,6 +17,7 @@ COPY activity-spec-war/target/activity-spec-war-${ARTIFACT_VERSION}.war ${WEBAPP COPY activity-spec-assembly/configuration.yaml . COPY activity-spec-assembly/start.sh . +COPY activity-spec-assembly/logback.xml ${LOGBACK_FILE_DIR} USER root diff --git a/services/activity-spec/activity-spec-web/activity-spec-assembly/logback.xml b/services/activity-spec/activity-spec-web/activity-spec-assembly/logback.xml new file mode 100644 index 0000000000..949510aac9 --- /dev/null +++ b/services/activity-spec/activity-spec-web/activity-spec-assembly/logback.xml @@ -0,0 +1,173 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + ~ Copyright © 2016-2018 European Support Limited + ~ + ~ 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="5 seconds"> + <property scope="system" name="ONAP-component-name" value="activity-spec" /> + <property scope="system" name="ONAP-subcomponent-name" value="be" /> + <property name="log.home" value="/var/log/ONAP" /> + <property name="log.location" value="${log.home}/${ONAP-component-name}/${ONAP-subcomponent-name}"/> + + <!-- Error log --> + <appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender"> + + <file>${log.location}/error.log</file> + + <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> + <level>INFO</level> + </filter> + + <filter class="ch.qos.logback.core.filter.EvaluatorFilter"> + <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator"> + <marker>AUDIT</marker> + </evaluator> + <onMismatch>NEUTRAL</onMismatch> + <onMatch>DENY</onMatch> + </filter> + + <filter class="ch.qos.logback.core.filter.EvaluatorFilter"> + <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator"> + <marker>METRICS</marker> + </evaluator> + <onMismatch>NEUTRAL</onMismatch> + <onMatch>DENY</onMatch> + </filter> + + <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> + <fileNamePattern>${log.location}/error.log.%i + </fileNamePattern> + <minIndex>1</minIndex> + <maxIndex>10</maxIndex> + </rollingPolicy> + + <triggeringPolicy + class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> + <maxFileSize>20MB</maxFileSize> + </triggeringPolicy> + + <encoder> + <pattern> + %d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{RequestId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%level||%X{ErrorCode}|%X{ErrorDescription}|%msg%n + </pattern> + </encoder> + </appender> + + + <appender name="DEBUG" class="ch.qos.logback.core.rolling.RollingFileAppender"> + + <file>${log.location}/debug.log</file> + + <filter class="ch.qos.logback.classic.filter.LevelFilter"> + <level>DEBUG</level> + <onMatch>ACCEPT</onMatch> + <onMismatch>DENY</onMismatch> + </filter> + + <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> + <fileNamePattern>${log.location}/debug.log.%i + </fileNamePattern> + <minIndex>1</minIndex> + <maxIndex>10</maxIndex> + </rollingPolicy> + + <triggeringPolicy + class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> + <maxFileSize>20MB</maxFileSize> + </triggeringPolicy> + + <encoder> + <pattern> + %d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{RequestId}|%msg%n + </pattern> + </encoder> + </appender> + + <!-- Asynchronicity Configurations --> + <appender name="ASYNC_DEBUG" class="ch.qos.logback.classic.AsyncAppender"> + <appender-ref ref="DEBUG" /> + </appender> + + <appender name="AUDIT" class="ch.qos.logback.core.rolling.RollingFileAppender"> + + <file>${log.location}/audit.log</file> + + <filter class="ch.qos.logback.core.filter.EvaluatorFilter"> + <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator"> + <marker>AUDIT</marker> + </evaluator> + <onMismatch>DENY</onMismatch> + <onMatch>ACCEPT</onMatch> + </filter> + + <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> + <fileNamePattern>${log.location}/audit.log.%i + </fileNamePattern> + <minIndex>1</minIndex> + <maxIndex>10</maxIndex> + </rollingPolicy> + + <triggeringPolicy + class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> + <maxFileSize>20MB</maxFileSize> + </triggeringPolicy> + + <encoder> + <pattern> + %X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceId}|%level||%X{ServerIpAddress}|%X{ElapsedTime}|%X{Server}|%X{ClientIpAddress}||||||||%msg%n + </pattern> + </encoder> + </appender> + + <appender name="METRICS" class="ch.qos.logback.core.rolling.RollingFileAppender"> + + <file>${log.location}/metrics.log</file> + + <filter class="ch.qos.logback.core.filter.EvaluatorFilter"> + <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator"> + <marker>METRICS</marker> + </evaluator> + <onMismatch>DENY</onMismatch> + <onMatch>ACCEPT</onMatch> + </filter> + + <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> + <fileNamePattern>${log.location}/metrics.log.%i + </fileNamePattern> + <minIndex>1</minIndex> + <maxIndex>10</maxIndex> + </rollingPolicy> + + <triggeringPolicy + class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> + <maxFileSize>20MB</maxFileSize> + </triggeringPolicy> + + <encoder> + <pattern> + %X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceId}|%level||%X{ServerIpAddress}|%X{ElapsedTime}|%X{Server}|%X{ClientIpAddress}||||||||||%msg%n + </pattern> + </encoder> + </appender> + + <root level="INFO"> + <appender-ref ref="ERROR"/> + <appender-ref ref="ASYNC_DEBUG"/> + <appender-ref ref="AUDIT"/> + <appender-ref ref="METRICS"/> + </root> + +</configuration>
\ No newline at end of file diff --git a/services/activity-spec/activity-spec-web/activity-spec-assembly/start.sh b/services/activity-spec/activity-spec-web/activity-spec-assembly/start.sh index f81247580b..d4a02293d9 100644 --- a/services/activity-spec/activity-spec-web/activity-spec-assembly/start.sh +++ b/services/activity-spec/activity-spec-web/activity-spec-assembly/start.sh @@ -8,4 +8,4 @@ fi #Replace 'CASSANDRA_HOST' in configuration.yaml with value of CASSANDRA_HOST environment variable sed -i "s/CASSANDRA_HOST/${CASSANDRA_HOST}/" configuration.yaml -java -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 "$JETTY_HOME/start.jar" -Dconfiguration.yaml=configuration.yaml
\ No newline at end of file +java -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 "$JETTY_HOME/start.jar" -Dconfiguration.yaml=configuration.yaml -Dlogback.configurationFile=${LOGBACK_FILE_DIR}/logback.xml
\ No newline at end of file diff --git a/services/activity-spec/activity-spec-web/activity-spec-service/pom.xml b/services/activity-spec/activity-spec-web/activity-spec-service/pom.xml index 6247184afb..12bb3ca99d 100644 --- a/services/activity-spec/activity-spec-web/activity-spec-service/pom.xml +++ b/services/activity-spec/activity-spec-web/activity-spec-service/pom.xml @@ -48,6 +48,12 @@ <scope>runtime</scope> </dependency> <dependency> + <groupId>org.openecomp.sdc</groupId> + <artifactId>openecomp-sdc-logging-core</artifactId> + <version>${project.version}</version> + <scope>runtime</scope> + </dependency> + <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-jaxrs</artifactId> <version>${org.codehaus.jackson.version}</version> @@ -71,6 +77,12 @@ <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> + <dependency> + <groupId>ch.qos.logback</groupId> + <artifactId>logback-classic</artifactId> + <version>1.2.3</version> + <scope>runtime</scope> + </dependency> </dependencies> </project> diff --git a/services/activity-spec/activity-spec-web/activity-spec-war/src/main/webapp/WEB-INF/beans-services.xml b/services/activity-spec/activity-spec-web/activity-spec-war/src/main/webapp/WEB-INF/beans-services.xml index 2e29f12a6a..11bf98477c 100644 --- a/services/activity-spec/activity-spec-web/activity-spec-war/src/main/webapp/WEB-INF/beans-services.xml +++ b/services/activity-spec/activity-spec-web/activity-spec-war/src/main/webapp/WEB-INF/beans-services.xml @@ -39,6 +39,11 @@ <jaxrs:providers> <ref bean="jsonProvider"/> <bean class="org.openecomp.activityspec.errors.DefaultExceptionMapper"/> + <bean class="org.openecomp.sdc.logging.servlet.jaxrs.LoggingRequestFilter"> + <property name="requestIdHeaders" value="X-ECOMP-RequestID,X-ONAP-RequestID"/> + <property name="partnerNameHeaders" value="USER_ID"/> + </bean> + <bean class="org.openecomp.sdc.logging.servlet.jaxrs.LoggingResponseFilter"/> </jaxrs:providers> </jaxrs:server> diff --git a/services/activity-spec/activity-spec-web/activity-spec-war/src/main/webapp/WEB-INF/web.xml b/services/activity-spec/activity-spec-web/activity-spec-war/src/main/webapp/WEB-INF/web.xml index e6be3b0a11..0a78e8e61e 100644 --- a/services/activity-spec/activity-spec-web/activity-spec-war/src/main/webapp/WEB-INF/web.xml +++ b/services/activity-spec/activity-spec-web/activity-spec-war/src/main/webapp/WEB-INF/web.xml @@ -15,16 +15,6 @@ <listener-class>org.openecomp.activityspec.api.server.listeners.ActivitySpecAppStartupListener</listener-class> </listener> - - <filter> - <filter-name>LoggingServletFilter</filter-name> - <filter-class>org.openecomp.sdc.logging.servlet.LoggingFilter</filter-class> - </filter> - - <filter-mapping> - <filter-name>LoggingServletFilter</filter-name> - <url-pattern>/*</url-pattern> - </filter-mapping> <filter> <filter-name>SessionContextFilter</filter-name> <filter-class>org.openecomp.activityspec.api.server.filters.ActivitySpecSessionContextFilter</filter-class> |