Change AtLevelLoggers to be initialized by lazy 18/75218/3
authorIzabela Zawadzka <izabela.zawadzka@nokia.com>
Thu, 3 Jan 2019 13:49:54 +0000 (14:49 +0100)
committerIzabela Zawadzka <izabela.zawadzka@nokia.com>
Fri, 4 Jan 2019 08:37:43 +0000 (09:37 +0100)
Change-Id: I3e9565d432c6df8dbc357caa61c10204f69f2e2a
Signed-off-by: Izabela Zawadzka <izabela.zawadzka@nokia.com>
Issue-ID: DCAEGEN2-1053

sources/hv-collector-utils/src/main/kotlin/org/onap/dcae/collectors/veshv/utils/logging/Logger.kt
sources/hv-collector-utils/src/test/kotlin/org/onap/dcae/collectors/veshv/utils/logging/LoggerTest.kt

index 82ce50a..ade9b48 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
 
index 10fc8d8..c408649 100644 (file)
  */
 package org.onap.dcae.collectors.veshv.utils.logging
 
-import com.nhaarman.mockitokotlin2.mock
-import com.nhaarman.mockitokotlin2.verify
-import com.nhaarman.mockitokotlin2.verifyNoMoreInteractions
-import com.nhaarman.mockitokotlin2.whenever
+import com.nhaarman.mockitokotlin2.*
 import org.jetbrains.spek.api.Spek
 import org.jetbrains.spek.api.dsl.describe
 import org.jetbrains.spek.api.dsl.it
@@ -34,13 +31,7 @@ import org.jetbrains.spek.api.dsl.it
 object LoggerTest : Spek({
 
     lateinit var slf4jLogger: org.slf4j.Logger
-    fun cut() = Logger(slf4jLogger).also {
-        verify(slf4jLogger).isTraceEnabled
-        verify(slf4jLogger).isDebugEnabled
-        verify(slf4jLogger).isInfoEnabled
-        verify(slf4jLogger).isWarnEnabled
-        verify(slf4jLogger).isErrorEnabled
-    }
+    fun cut() = Logger(slf4jLogger)
 
     beforeEachTest {
         slf4jLogger = mock()
@@ -54,6 +45,17 @@ object LoggerTest : Spek({
         val message = "sample message"
         val exception = Exception("fail")
 
+        describe("before first use") {
+            it("should not initialize AtLeverLoggers") {
+                cut()
+                verify(slf4jLogger, never()).isTraceEnabled
+                verify(slf4jLogger, never()).isDebugEnabled
+                verify(slf4jLogger, never()).isInfoEnabled
+                verify(slf4jLogger, never()).isWarnEnabled
+                verify(slf4jLogger, never()).isErrorEnabled
+            }
+        }
+
         describe("debug levels") {
 
             describe("lazy logging message") {