Table of Contents |
---|
...
- Must be set as early in invocation as possible.
- Must be unset on exit.
- keep in sync with https://wiki.acumos.org/display/OAM/Log+Standards
Pipe Order | Name | Type | Group | Description | Applicable (per log file) | Marker Associations | Moved MDC to standard attribute | Removed (was in older spec) | Required? Y/N/C (C= context dependent) N = not required | Derived | Acumos ref | Use Cases | Code References | UUID to track the processing of each client request across all the ONAP components involved in its processing | Y | |||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | LogTimestamp | log system | use %d field | |||||||||||||||||
2 | EntryTimestamp | MDC | if part of an ENTRY marker log | C | ||||||||||||||||
3 | InvokeTimestamp | MDC | if part of an INVOKE marker log | C | ||||||||||||||||
4 | MDC | UUID to track the processing of each client request across all the ONAP components involved in its processing | Y | In general | ||||||||||||||||
5 | InvocationID | MDC | UUID correlates log entries relating to a single invocation of a single component | Y | ||||||||||||||||
6 | InstanceUUID | MDC | UUID to differentiate between multiple instances of the same (named) log writing service/application | Y | ||||||||||||||||
7 | ServiceInstanceID | MDC | C | |||||||||||||||||
8 | Thread | log system | use %thread field | |||||||||||||||||
9 | ServiceName | The service inside the partner doing the call - includes API name | Y | |||||||||||||||||
10 | PartnerName | unauthenticated = The part of the URI specifying the agent that the caller used to make the call to the component that is logging the message. authenticated = userid | Y | user | ||||||||||||||||
11 | StatusCode | This field indicates the high level status of the request - one of (COMPLETE, ERROR, INPROGRESS) | Y | 20180807: expand from 2 fields to add "INPROGRESS" addresses Chris Lott question on https://wiki.acumos.org/display/OAM/Log+Standards | ||||||||||||||||
12 | ResponseCode | This field contains application-specific error codes. | Y | |||||||||||||||||
13 | ResponseDescriptionResponseDes | This field contains a human readable description of the ResponseCode | Y | Severity | Logging level||||||||||||||||
14 | Level | %level | C | |||||||||||||||||
15 | Severity | Logging level by default aligned with the reported log level - one of INFO/TRACE/DEBUG/WARN/ERROR/FATAL | Y | level (but numbers) | ||||||||||||||||
16 | ServerIPAddress | C | ||||||||||||||||||
17 | ElapsedTime | C | ||||||||||||||||||
18 | ServerFQDN | The VM FQDN if the server is virtualized. Otherwise the host name of the logging component. | Y | |||||||||||||||||
19 | ClientIPAddress | This field contains the requesting remote client application’s IP address if known. Otherwise empty. | Y | |||||||||||||||||
Message | Freeform text (optional)20 | VirtualServerName | C | Notes: re-added 20180807 - aligns with Acumos Add specifically for debug/error but other audit/metrics are not required | ||||||||||||||||
EntryTimestamp | UTC Date-time that processing activities being logged begins - if part of an ENTRY marker | C | see calc of ElapsedTime | InvokeTimestamp | Timestamp on invocation start - if part of an INVOKE marker | C | 21 | ContextName | C | |||||||||||
22 | TargetEntity | The name of the ONAP component or sub-component, or external entity, at which the operation activities captured in this metrics log record is invoked. | C | |||||||||||||||||
23 | TargetServiceName | The name of the API or operation activities invoked (name on the remote/target application) at the TargetEntity. | C | |||||||||||||||||
24 | TargetElement | VNF/PNF context dependent - on CRUD operations of VNF/PNFs The IDs that need to be covered with the above Attributes are - VNF_ID OR VNFC_ID : (Unique identifier for a VNF asset that is being instantiated or that would generate an alarms) - VSERVER_ID OR VM_ID (or vmid): (Unique identified for a virtual server or virtual machine on which a Control Loop action is usually taken on, or that is installed as part of instantiation flow) - PNF : (What is the Unique identifier used within ONAP) | C | |||||||||||||||||
25 | User | MDC | C | |||||||||||||||||
26 | Logger | log system | %logger | C | ||||||||||||||||
27 | Mdc | log system | %mdc | C | ||||||||||||||||
28 | Message | log system | %msg | C | ||||||||||||||||
29 | RootException | log system | %rootException | C | ||||||||||||||||
30 | Marker | log system | %marker | C |
Logging
Via SLF4J:
Code Block | ||||
---|---|---|---|---|
| ||||
import java.util.UUID; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.slf4j.MDC; // ... final Logger logger = LoggerFactory.getLogger(this.getClass()); MDC.put("SomeUUID", UUID.randomUUID().toString()); try { logger.info("This message will have a UUID-valued 'SomeUUID' MDC attached."); // ... } finally { MDC.clear(); } |
...
Note there are 3 tabs (see p_mak in logback.xml) delimiting the MARKERS (ENTRY and EXIT) at the end of each line
<property name="p_mak" value="%replace(%replace(%marker){'\t', '\\\\t'}){'\n','\\\\n'}"/>
Code Block | ||||
---|---|---|---|---|
| ||||
2018-07-05T20:21:34.794Z http-nio-8080-exec-2 INFO org.onap.demo.logging.ApplicationService InstanceUUID=ede7dd52-91e8-45ce-9406-fbafd17a7d4c, RequestID=f9d8bb0f-4b4b-4700-9853-d3b79d861c5b, ServiceName=/logging-demo/rest/health/health, InvocationID=8f4c1f1d-5b32-4981-b658-e5992f28e6c8, InvokeTimestamp=2018-07-05T20:21:26.617Z, PartnerName=, ClientIPAddress=0:0:0:0:0:0:0:1, ServerFQDN=localhost ENTRY 2018-07-05T20:22:09.268Z http-nio-8080-exec-2 INFO org.onap.demo.logging.ApplicationService ResponseCode=, InstanceUUID=ede7dd52-91e8-45ce-9406-fbafd17a7d4c, RequestID=f9d8bb0f-4b4b-4700-9853-d3b79d861c5b, ServiceName=/logging-demo/rest/health/health, ResponseDescription=, InvocationID=8f4c1f1d-5b32-4981-b658-e5992f28e6c8, Severity=, InvokeTimestamp=2018-07-05T20:21:26.617Z, PartnerName=, ClientIPAddress=0:0:0:0:0:0:0:1, ServerFQDN=localhost, StatusCode= EXIT |
...