aboutsummaryrefslogtreecommitdiffstats
path: root/reference/logging-demo/src/main
diff options
context:
space:
mode:
authorMichael O'Brien <frank.obrien@amdocs.com>2018-06-25 13:59:31 -0400
committerMichael O'Brien <frank.obrien@amdocs.com>2018-07-10 23:45:29 -0400
commit9eee6ac9daa5b82946b4f7c7eaa817ae3e1f4cab (patch)
treec92bf95da779589a1162044b4f77a51876fccb7b /reference/logging-demo/src/main
parent9aaa8f39949d7dc3d66888797951a20a7bced145 (diff)
logging library use and k8s
Change-Id: I264f6dd5270543a216612c50fd5806458e0e806a Issue-ID: LOG-135 Signed-off-by: Michael O'Brien <frank.obrien@amdocs.com>
Diffstat (limited to 'reference/logging-demo/src/main')
-rw-r--r--reference/logging-demo/src/main/java/org/onap/demo/logging/ApplicationService.java11
-rw-r--r--reference/logging-demo/src/main/java/org/onap/demo/logging/ApplicationServiceLocal.java4
-rw-r--r--reference/logging-demo/src/main/java/org/onap/demo/logging/LoggingAspect.java55
-rw-r--r--reference/logging-demo/src/main/java/org/onap/demo/logging/RestHealthServiceImpl.java8
-rw-r--r--reference/logging-demo/src/main/java/org/onap/demo/logging/RestServiceImpl.java25
-rw-r--r--reference/logging-demo/src/main/resources/logback.xml32
-rw-r--r--reference/logging-demo/src/main/webapp/WEB-INF/spring.xml5
7 files changed, 125 insertions, 15 deletions
diff --git a/reference/logging-demo/src/main/java/org/onap/demo/logging/ApplicationService.java b/reference/logging-demo/src/main/java/org/onap/demo/logging/ApplicationService.java
index d0355df..d6329e2 100644
--- a/reference/logging-demo/src/main/java/org/onap/demo/logging/ApplicationService.java
+++ b/reference/logging-demo/src/main/java/org/onap/demo/logging/ApplicationService.java
@@ -20,14 +20,23 @@
*/
package org.onap.demo.logging;
+import javax.servlet.http.HttpServletRequest;
+
+import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
@Service("daoFacade")
+/**
+ * Run with http://localhost:8080/logging-demo/rest/health/health
+ *
+ */
public class ApplicationService implements ApplicationServiceLocal {
@Override
- public Boolean health() {
+ public Boolean health(HttpServletRequest servletRequest) {
Boolean health = true;
// TODO: check database
+ // Log outside the AOP framework - to simulate existing component logs between the ENTRY/EXIT markers
+ LoggerFactory.getLogger(this.getClass()).info("Running /health");
return health;
}
diff --git a/reference/logging-demo/src/main/java/org/onap/demo/logging/ApplicationServiceLocal.java b/reference/logging-demo/src/main/java/org/onap/demo/logging/ApplicationServiceLocal.java
index ac585fb..e2cd5b7 100644
--- a/reference/logging-demo/src/main/java/org/onap/demo/logging/ApplicationServiceLocal.java
+++ b/reference/logging-demo/src/main/java/org/onap/demo/logging/ApplicationServiceLocal.java
@@ -20,6 +20,8 @@
*/
package org.onap.demo.logging;
+import javax.servlet.http.HttpServletRequest;
+
public interface ApplicationServiceLocal {
- Boolean health();
+ Boolean health(HttpServletRequest request);
}
diff --git a/reference/logging-demo/src/main/java/org/onap/demo/logging/LoggingAspect.java b/reference/logging-demo/src/main/java/org/onap/demo/logging/LoggingAspect.java
new file mode 100644
index 0000000..2901ce1
--- /dev/null
+++ b/reference/logging-demo/src/main/java/org/onap/demo/logging/LoggingAspect.java
@@ -0,0 +1,55 @@
+/**
+ * ============LICENSE_START=======================================================
+ * org.onap.logging
+ * ================================================================================
+ * Copyright © 2018 Amdocs
+ * All rights reserved.
+ * ================================================================================
+ * 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=========================================================
+ */
+package org.onap.demo.logging;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.aspectj.lang.JoinPoint;
+import org.aspectj.lang.annotation.After;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Before;
+import org.onap.logging.ref.slf4j.ONAPLogAdapter;
+import org.slf4j.LoggerFactory;
+
+@Aspect
+public class LoggingAspect {
+
+ @Before("execution(* org.onap.demo.logging.*.*(..))")
+ public void logBefore(JoinPoint joinPoint) {
+ Object[] args = joinPoint.getArgs();
+ Object servletRequest = args[0];
+ ONAPLogAdapter.HttpServletRequestAdapter requestAdapter =
+ new ONAPLogAdapter.HttpServletRequestAdapter((HttpServletRequest)servletRequest);
+ final ONAPLogAdapter adapter = new ONAPLogAdapter(
+ LoggerFactory.getLogger(joinPoint.getTarget().getClass()));
+ try {
+ adapter.entering(requestAdapter);
+ } finally {
+ }
+ }
+
+ @After("execution(* org.onap.demo.logging.*.*(..))")
+ public void logAfter(JoinPoint joinPoint) {
+ final ONAPLogAdapter adapter = new ONAPLogAdapter(
+ LoggerFactory.getLogger(joinPoint.getTarget().getClass()));
+ adapter.exiting();
+ }
+}
diff --git a/reference/logging-demo/src/main/java/org/onap/demo/logging/RestHealthServiceImpl.java b/reference/logging-demo/src/main/java/org/onap/demo/logging/RestHealthServiceImpl.java
index 33e3874..bcc4efb 100644
--- a/reference/logging-demo/src/main/java/org/onap/demo/logging/RestHealthServiceImpl.java
+++ b/reference/logging-demo/src/main/java/org/onap/demo/logging/RestHealthServiceImpl.java
@@ -21,16 +21,21 @@
package org.onap.demo.logging;
import javax.inject.Inject;
+import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Application;
+import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import org.springframework.beans.factory.annotation.Qualifier;
@Path("/health")
public class RestHealthServiceImpl extends Application {
+
+ @Context private HttpServletRequest servletRequest;
+
@Inject
@Qualifier("daoFacade")
private ApplicationServiceLocal applicationServiceLocal;
@@ -39,7 +44,8 @@ public class RestHealthServiceImpl extends Application {
@Path("/health")
@Produces(MediaType.TEXT_HTML)
public String getHealth() {
- return applicationServiceLocal.health().toString();
+
+ return applicationServiceLocal.health(servletRequest).toString();
}
}
diff --git a/reference/logging-demo/src/main/java/org/onap/demo/logging/RestServiceImpl.java b/reference/logging-demo/src/main/java/org/onap/demo/logging/RestServiceImpl.java
index 9dfe884..fe13f0c 100644
--- a/reference/logging-demo/src/main/java/org/onap/demo/logging/RestServiceImpl.java
+++ b/reference/logging-demo/src/main/java/org/onap/demo/logging/RestServiceImpl.java
@@ -31,19 +31,20 @@ import org.springframework.beans.factory.annotation.Qualifier;
@Path("/read")
public class RestServiceImpl extends Application {
- @Inject
- @Qualifier("daoFacade")
+ @Inject
+ @Qualifier("daoFacade")
private ApplicationServiceLocal applicationServiceLocal;
-
- @GET
- @Path("/test")
- @Produces(MediaType.TEXT_HTML)
- public String getTest() {
- return "testing: " + applicationServiceLocal;
- }
- private ApplicationServiceLocal getApplicationService() {
- return applicationServiceLocal;
- }
+ @GET
+ @Path("/test")
+ @Produces(MediaType.TEXT_HTML)
+ public String getTest() {
+ return "testing: " + applicationServiceLocal;
+
+ }
+
+ private ApplicationServiceLocal getApplicationService() {
+ return applicationServiceLocal;
+ }
}
diff --git a/reference/logging-demo/src/main/resources/logback.xml b/reference/logging-demo/src/main/resources/logback.xml
new file mode 100644
index 0000000..71d41e4
--- /dev/null
+++ b/reference/logging-demo/src/main/resources/logback.xml
@@ -0,0 +1,32 @@
+<configuration>
+ <property name="p_tim" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}"/>
+ <property name="p_lvl" value="%level"/>
+ <property name="p_log" value="%logger"/>
+ <property name="p_mdc" value="%replace(%replace(%mdc){'\t','\\\\t'}){'\n', '\\\\n'}"/>
+ <property name="p_msg" value="%replace(%replace(%msg){'\t', '\\\\t'}){'\n','\\\\n'}"/>
+ <property name="p_exc" value="%replace(%replace(%rootException){'\t', '\\\\t'}){'\n','\\\\n'}"/>
+ <property name="p_mak" value="%replace(%replace(%marker){'\t', '\\\\t'}){'\n','\\\\n'}"/>
+ <property name="p_thr" value="%thread"/>
+ <property name="pattern" value="%nopexception${p_tim}\t${p_thr}\t${p_lvl}\t${p_log}\t${p_mdc}\t${p_msg}\t${p_exc}\t${p_mak}\t%n"/>
+ <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+ <encoder>
+ <pattern>${pattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="FILE" class="ch.qos.logback.core.FileAppender">
+ <file>output.log</file>
+ <encoder>
+ <pattern>${pattern}</pattern>
+ </encoder>
+ </appender>
+
+ <logger level="INFO" name="org.onap.logging.ref.slf4j" additivity="false">
+ <appender-ref ref="STDOUT" />
+ <appender-ref ref="FILE" />
+ </logger>
+
+ <root level="INFO">
+ <appender-ref ref="STDOUT" />
+ </root>
+</configuration>
diff --git a/reference/logging-demo/src/main/webapp/WEB-INF/spring.xml b/reference/logging-demo/src/main/webapp/WEB-INF/spring.xml
index 32d1235..2b4d585 100644
--- a/reference/logging-demo/src/main/webapp/WEB-INF/spring.xml
+++ b/reference/logging-demo/src/main/webapp/WEB-INF/spring.xml
@@ -34,6 +34,11 @@
</context:component-scan>
<!-- Rest controllers -->
<context:component-scan base-package="org.onap.demo.logging" />
+ <!-- enable logging AOP proxies -->
+ <aop:aspectj-autoproxy />
+ <beans>
+ <bean class="org.onap.demo.logging.LoggingAspect" /> <!-- required even though we annotate with @Aspect -->
+ </beans>
</beans>