[CORDA-1809]: Some improvements in logging context information. (#3755)

This commit is contained in:
Michele Sollecito 2018-08-08 15:20:50 +01:00 committed by GitHub
parent 0c7e0f6dbb
commit 59dd39b069
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,28 +1,42 @@
package net.corda.node.services.logging
import net.corda.core.context.Actor
import net.corda.core.context.InvocationContext
import net.corda.core.context.InvocationOrigin
import net.corda.core.context.Trace
import org.slf4j.MDC
internal fun InvocationContext.pushToLoggingContext() {
MDC.put("invocation_id", trace.invocationId.value)
MDC.put("invocation_timestamp", trace.invocationId.timestamp.toString())
MDC.put("session_id", trace.sessionId.value)
MDC.put("session_timestamp", trace.sessionId.timestamp.toString())
actor?.let {
MDC.put("actor_id", it.id.value)
MDC.put("actor_store_id", it.serviceId.value)
MDC.put("actor_owningIdentity", it.owningLegalIdentity.toString())
trace.pushToLoggingContext()
actor?.pushToLoggingContext()
origin.pushToLoggingContext()
externalTrace?.pushToLoggingContext("external_")
impersonatedActor?.pushToLoggingContext("impersonating_")
}
internal fun Trace.pushToLoggingContext(prefix: String = "") {
MDC.getMDCAdapter().apply {
put("${prefix}invocation_id", invocationId.value)
put("${prefix}invocation_timestamp", invocationId.timestamp.toString())
put("${prefix}session_id", sessionId.value)
put("${prefix}session_timestamp", sessionId.timestamp.toString())
}
externalTrace?.let {
MDC.put("external_invocation_id", it.invocationId.value)
MDC.put("external_invocation_timestamp", it.invocationId.timestamp.toString())
MDC.put("external_session_id", it.sessionId.value)
MDC.put("external_session_timestamp", it.sessionId.timestamp.toString())
}
internal fun Actor.pushToLoggingContext(prefix: String = "") {
MDC.getMDCAdapter().apply {
put("${prefix}actor_id", id.value)
put("${prefix}actor_store_id", serviceId.value)
put("${prefix}actor_owning_identity", owningLegalIdentity.toString())
}
impersonatedActor?.let {
MDC.put("impersonating_actor_id", it.id.value)
MDC.put("impersonating_actor_store_id", it.serviceId.value)
MDC.put("impersonating_actor_owningIdentity", it.owningLegalIdentity.toString())
}
internal fun InvocationOrigin.pushToLoggingContext(prefix: String = "") {
MDC.getMDCAdapter().apply {
put("${prefix}origin", principal().name)
}
}