X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=sources%2Fhv-collector-utils%2Fsrc%2Fmain%2Fkotlin%2Forg%2Fonap%2Fdcae%2Fcollectors%2Fveshv%2Futils%2Flogging%2FLogger.kt;h=ade9b4802c5bb4417cc65bd088ceb1030af14131;hb=HEAD;hp=1e5c9c55b07ee5e073e45c825340773318a0b172;hpb=fb4914b7b200772f70e9a7b011d9b17c35df5bfc;p=dcaegen2%2Fcollectors%2Fhv-ves.git diff --git a/sources/hv-collector-utils/src/main/kotlin/org/onap/dcae/collectors/veshv/utils/logging/Logger.kt b/sources/hv-collector-utils/src/main/kotlin/org/onap/dcae/collectors/veshv/utils/logging/Logger.kt index 1e5c9c55..14bc3ec0 100644 --- a/sources/hv-collector-utils/src/main/kotlin/org/onap/dcae/collectors/veshv/utils/logging/Logger.kt +++ b/sources/hv-collector-utils/src/main/kotlin/org/onap/dcae/collectors/veshv/utils/logging/Logger.kt @@ -19,9 +19,11 @@ */ package org.onap.dcae.collectors.veshv.utils.logging +import ch.qos.logback.classic.LoggerContext import kotlin.reflect.KClass import org.slf4j.LoggerFactory import org.slf4j.MDC +import org.slf4j.Marker typealias MappedDiagnosticContext = () -> Map @@ -30,11 +32,21 @@ class Logger(logger: org.slf4j.Logger) { constructor(clazz: KClass) : 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 @@ -50,9 +62,6 @@ class Logger(logger: org.slf4j.Logger) { fun error(mdc: MappedDiagnosticContext, message: () -> String) = errorLogger.withMdc(mdc) { log(message()) } - fun error(mdc: MappedDiagnosticContext, marker: Marker, message: () -> String) = - errorLogger.withMdc(mdc) { log(marker, message()) } - // WARN fun withWarn(block: AtLevelLogger.() -> Unit) = warnLogger.block() @@ -67,9 +76,6 @@ class Logger(logger: org.slf4j.Logger) { fun warn(mdc: MappedDiagnosticContext, message: () -> String) = warnLogger.withMdc(mdc) { log(message()) } - fun warn(mdc: MappedDiagnosticContext, marker: Marker, message: () -> String) = - warnLogger.withMdc(mdc) { log(marker, message()) } - // INFO fun withInfo(block: AtLevelLogger.() -> Unit) = infoLogger.block() @@ -84,9 +90,6 @@ class Logger(logger: org.slf4j.Logger) { fun info(mdc: MappedDiagnosticContext, message: () -> String) = infoLogger.withMdc(mdc) { log(message()) } - fun info(mdc: MappedDiagnosticContext, marker: Marker, message: () -> String) = - infoLogger.withMdc(mdc) { log(marker, message()) } - // DEBUG fun withDebug(block: AtLevelLogger.() -> Unit) = debugLogger.block() @@ -101,9 +104,6 @@ class Logger(logger: org.slf4j.Logger) { fun debug(mdc: MappedDiagnosticContext, message: () -> String) = debugLogger.withMdc(mdc) { log(message()) } - fun debug(mdc: MappedDiagnosticContext, marker: Marker, message: () -> String) = - debugLogger.withMdc(mdc) { log(marker, message()) } - // TRACE fun withTrace(block: AtLevelLogger.() -> Unit) = traceLogger.block() @@ -118,15 +118,20 @@ class Logger(logger: org.slf4j.Logger) { fun trace(mdc: MappedDiagnosticContext, message: () -> String) = traceLogger.withMdc(mdc) { log(message()) } - fun trace(mdc: MappedDiagnosticContext, marker: Marker, message: () -> String) = - traceLogger.withMdc(mdc) { log(marker, message()) } - + companion object { + fun setLogLevel(packageName: String, level: LogLevel) { + val loggerContext = LoggerFactory.getILoggerFactory() as LoggerContext + loggerContext.getLogger(packageName).level = level() + } + } } 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 @@ -156,6 +161,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") @@ -168,9 +177,11 @@ class ErrorLevelLogger(private val logger: org.slf4j.Logger) : AtLevelLogger() { logger.error(message, t) } - override fun log(marker: Marker, message: String) { - logger.error(marker(), message) - } + override fun log(marker: Marker, message: String) = + logger.error(marker, message) + + override fun log(marker: Marker, message: String, t: Throwable) = + logger.error(marker, message, t) } @Suppress("SuboptimalLoggerUsage") @@ -183,9 +194,11 @@ class WarnLevelLogger(private val logger: org.slf4j.Logger) : AtLevelLogger() { logger.warn(message, t) } - override fun log(marker: Marker, message: String) { - logger.warn(marker(), message) - } + override fun log(marker: Marker, message: String) = + logger.warn(marker, message) + + override fun log(marker: Marker, message: String, t: Throwable) = + logger.warn(marker, message, t) } @Suppress("SuboptimalLoggerUsage") @@ -198,9 +211,11 @@ class InfoLevelLogger(private val logger: org.slf4j.Logger) : AtLevelLogger() { logger.info(message, t) } - override fun log(marker: Marker, message: String) { - logger.info(marker(), message) - } + override fun log(marker: Marker, message: String) = + logger.info(marker, message) + + override fun log(marker: Marker, message: String, t: Throwable) = + logger.info(marker, message, t) } @Suppress("SuboptimalLoggerUsage") @@ -213,9 +228,11 @@ class DebugLevelLogger(private val logger: org.slf4j.Logger) : AtLevelLogger() { logger.debug(message, t) } - override fun log(marker: Marker, message: String) { - logger.debug(marker(), message) - } + override fun log(marker: Marker, message: String) = + logger.debug(marker, message) + + override fun log(marker: Marker, message: String, t: Throwable) = + logger.debug(marker, message, t) } @Suppress("SuboptimalLoggerUsage") @@ -228,7 +245,9 @@ class TraceLevelLogger(private val logger: org.slf4j.Logger) : AtLevelLogger() { logger.trace(message, t) } - override fun log(marker: Marker, message: String) { - logger.trace(marker(), message) - } + override fun log(marker: Marker, message: String) = + logger.trace(marker, message) + + override fun log(marker: Marker, message: String, t: Throwable) = + logger.trace(marker, message, t) }