...
Code Block | ||||
---|---|---|---|---|
| ||||
<logback.version>1.2.3</logback.version> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-core</artifactId> <version>${logback.version}</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>${logback.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>${spring.version}</version> </dependency> |
Logging With AOP
Jira | ||||||
---|---|---|---|---|---|---|
|
...
Code Block | ||||
---|---|---|---|---|
| ||||
package org.onap.demo.logging; import javax.servlet.http.HttpServletRequest; import org.aspectj.lang.JoinPoint; 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 { adapter.exiting(); } } } results - still working on passing in the servlet request INFO: Server startup in 10663 ms 2018-07-09T01:37:45.402Z http-nio-8080-exec-2 INFO org.onap.demo.logging.ApplicationService InstanceUUID=da6befe8-3199-4cf1-80e8-22dd8c2356ce, RequestID=a6e590e0-7330-4751-bdbc-f367e5757d87, ServiceName=/logging-demo/rest/health/health, InvocationID=8f674cf3-823c-40a9-92d3-dad45490e141, InvokeTimestamp=2018-07-09T01:37:45.397Z, PartnerName=, ClientIPAddress=0:0:0:0:0:0:0:1, ServerFQDN=localhost ENTRY 2018-07-09T01:37:45.403Z http-nio-8080-exec-2 INFO org.onap.demo.logging.ApplicationService ResponseCode=, InstanceUUID=da6befe8-3199-4cf1-80e8-22dd8c2356ce, RequestID=a6e590e0-7330-4751-bdbc-f367e5757d87, ServiceName=/logging-demo/rest/health/health, ResponseDescription=, InvocationID=8f674cf3-823c-40a9-92d3-dad45490e141, Severity=, InvokeTimestamp=2018-07-09T01:37:45.397Z, PartnerName=, ClientIPAddress=0:0:0:0:0:0:0:1, ServerFQDN=localhost, StatusCode= EXIT |
Logging Without Spring AOP
Code Block | ||||
---|---|---|---|---|
| ||||
# pending annotation level weaving of the library import org.onap.logging.ref.slf4j.ONAPLogAdapter; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; @Service("daoFacade") public class ApplicationService implements ApplicationServiceLocal { @Override public Boolean health(HttpServletRequest servletRequest) { Boolean health = true; // TODO: check database final ONAPLogAdapter adapter = new ONAPLogAdapter(LoggerFactory.getLogger(this.getClass())); try { adapter.entering(new ONAPLogAdapter.HttpServletRequestAdapter(servletRequest)); } finally { adapter.exiting(); } return health; } MDC's are set for example this LogbackMDCAdapter (id=282) copyOnInheritThreadLocal InheritableThreadLocal<T> (id=284) lastOperation ThreadLocal<T> (id=287) key "ServerFQDN" (id=273) val "localhost" (id=272) {InstanceUUID=aa2d5b18-e3c2-44d3-b3ae-8565113a81b9, RequestID=788cf6a6-8008-4b95-af3f-61d92d9cbb4e, ServiceName=, InvocationID=dade7e58-fa24-4b2d-84e8-d3e89af9e6e1, InvokeTimestamp=2018-07-05T14:25:05.739Z, PartnerName=, ClientIPAddress=0:0:0:0:0:0:0:1, ServerFQDN=localhost} in LogbackMDCAdapter.put(String, String) line: 98 MDC.put(String, String) line: 147 ONAPLogAdapter.setEnteringMDCs(RequestAdapter<?>) line: 327 ONAPLogAdapter.entering(ONAPLogAdapter$RequestAdapter) line: 156 ApplicationService.health(HttpServletRequest) line: 38 RestHealthServiceImpl.getHealth() line: 47 # fix get() returned "" (id=201) key "ServiceName" (id=340) Daemon Thread [http-nio-8080-exec-12] (Suspended) owns: NioEndpoint$NioSocketWrapper (id=113) MDC.get(String) line: 203 ONAPLogAdapter.setEnteringMDCs(RequestAdapter<?>) line: 336 ONAPLogAdapter.entering(ONAPLogAdapter$RequestAdapter) line: 156 ApplicationService.health(HttpServletRequest) line: 38 RestHealthServiceImpl.getHealth() line: 47 if (MDC.get(ONAPLogConstants.MDCs.SERVICE_NAME) == null) { MDC.put(ONAPLogConstants.MDCs.SERVICE_NAME, request.getRequestURI()); to if (MDC.get(ONAPLogConstants.MDCs.SERVICE_NAME) == null || MDC.get(ONAPLogConstants.MDCs.SERVICE_NAME).equalsIgnoreCase(EMPTY_MESSAGE)) { |
...