Correct totalConnections metric
[dcaegen2/collectors/hv-ves.git] / sources / hv-collector-utils / src / main / kotlin / org / onap / dcae / collectors / veshv / utils / logging / Logger.kt
index 82ce50a..7fcc73a 100644 (file)
@@ -31,11 +31,21 @@ class Logger(logger: org.slf4j.Logger) {
     constructor(clazz: KClass<out Any>) : this(LoggerFactory.getLogger(clazz.java))
     constructor(name: String) : this(LoggerFactory.getLogger(name))
 
-    private val errorLogger = if (logger.isErrorEnabled) ErrorLevelLogger(logger) else OffLevelLogger
-    private val warnLogger = if (logger.isWarnEnabled) WarnLevelLogger(logger) else OffLevelLogger
-    private val infoLogger = if (logger.isInfoEnabled) InfoLevelLogger(logger) else OffLevelLogger
-    private val debugLogger = if (logger.isDebugEnabled) DebugLevelLogger(logger) else OffLevelLogger
-    private val traceLogger = if (logger.isTraceEnabled) TraceLevelLogger(logger) else OffLevelLogger
+    private val errorLogger by lazy {
+        if (logger.isErrorEnabled) ErrorLevelLogger(logger) else OffLevelLogger
+    }
+    private val warnLogger by lazy {
+        if (logger.isWarnEnabled) WarnLevelLogger(logger) else OffLevelLogger
+    }
+    private val infoLogger by lazy {
+        if (logger.isInfoEnabled) InfoLevelLogger(logger) else OffLevelLogger
+    }
+    private val debugLogger by lazy {
+        if (logger.isDebugEnabled) DebugLevelLogger(logger) else OffLevelLogger
+    }
+    private val traceLogger by lazy {
+        if (logger.isTraceEnabled) TraceLevelLogger(logger) else OffLevelLogger
+    }
 
     // ERROR
 
@@ -54,6 +64,9 @@ class Logger(logger: org.slf4j.Logger) {
     fun error(mdc: MappedDiagnosticContext, marker: Marker, message: () -> String) =
         errorLogger.withMdc(mdc) { log(marker, message()) }
 
+    fun error(mdc: MappedDiagnosticContext, marker: Marker, message: () -> String, t: Throwable) =
+        errorLogger.withMdc(mdc) { log(marker, message(), t) }
+
     // WARN
 
     fun withWarn(block: AtLevelLogger.() -> Unit) = warnLogger.block()
@@ -71,6 +84,9 @@ class Logger(logger: org.slf4j.Logger) {
     fun warn(mdc: MappedDiagnosticContext, marker: Marker, message: () -> String) =
         warnLogger.withMdc(mdc) { log(marker, message()) }
 
+    fun warn(mdc: MappedDiagnosticContext, marker: Marker, message: () -> String, t: Throwable) =
+        warnLogger.withMdc(mdc) { log(marker, message(), t) }
+
     // INFO
 
     fun withInfo(block: AtLevelLogger.() -> Unit) = infoLogger.block()
@@ -134,6 +150,7 @@ abstract class AtLevelLogger {
     abstract fun log(message: String)
     abstract fun log(message: String, t: Throwable)
     abstract fun log(marker: Marker, message: String)
+    abstract fun log(marker: Marker, message: String, t: Throwable)
 
     open val enabled: Boolean
         get() = true
@@ -177,6 +194,10 @@ object OffLevelLogger : AtLevelLogger() {
     override fun log(marker: Marker, message: String) {
         // do not log anything
     }
+
+    override fun log(marker: Marker, message: String, t: Throwable) {
+        // do no log anything
+    }
 }
 
 @Suppress("SuboptimalLoggerUsage")
@@ -193,6 +214,11 @@ class ErrorLevelLogger(private val logger: org.slf4j.Logger) : AtLevelLogger() {
         withAdditionalMdc(marker.mdc) {
             logger.error(marker.slf4jMarker, message)
         }
+
+    override fun log(marker: Marker, message: String, t: Throwable) =
+        withAdditionalMdc(marker.mdc) {
+            logger.error(marker.slf4jMarker, message, t)
+        }
 }
 
 @Suppress("SuboptimalLoggerUsage")
@@ -209,6 +235,11 @@ class WarnLevelLogger(private val logger: org.slf4j.Logger) : AtLevelLogger() {
         withAdditionalMdc(marker.mdc) {
             logger.warn(marker.slf4jMarker, message)
         }
+
+    override fun log(marker: Marker, message: String, t: Throwable) =
+        withAdditionalMdc(marker.mdc) {
+            logger.warn(marker.slf4jMarker, message, t)
+        }
 }
 
 @Suppress("SuboptimalLoggerUsage")
@@ -225,6 +256,11 @@ class InfoLevelLogger(private val logger: org.slf4j.Logger) : AtLevelLogger() {
         withAdditionalMdc(marker.mdc) {
             logger.info(marker.slf4jMarker, message)
         }
+
+    override fun log(marker: Marker, message: String, t: Throwable) =
+        withAdditionalMdc(marker.mdc) {
+            logger.info(marker.slf4jMarker, message, t)
+        }
 }
 
 @Suppress("SuboptimalLoggerUsage")
@@ -241,6 +277,11 @@ class DebugLevelLogger(private val logger: org.slf4j.Logger) : AtLevelLogger() {
         withAdditionalMdc(marker.mdc) {
             logger.debug(marker.slf4jMarker, message)
         }
+
+    override fun log(marker: Marker, message: String, t: Throwable) =
+        withAdditionalMdc(marker.mdc) {
+            logger.debug(marker.slf4jMarker, message, t)
+        }
 }
 
 @Suppress("SuboptimalLoggerUsage")
@@ -257,4 +298,9 @@ class TraceLevelLogger(private val logger: org.slf4j.Logger) : AtLevelLogger() {
         withAdditionalMdc(marker.mdc) {
             logger.trace(marker.slf4jMarker, message)
         }
+
+    override fun log(marker: Marker, message: String, t: Throwable) =
+        withAdditionalMdc(marker.mdc) {
+            logger.trace(marker.slf4jMarker, message, t)
+        }
 }