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") {