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
 
 
  */
 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
 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()
         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") {