TaggedLogger

open class TaggedLogger<L : Any, out R : TaggedLogger<L, R>> : KLogger

This is a logging class to help apply and remove MDC context tags from within calls in service code.

In particular, it solves the problem with searching logs using the MDC context tags where an exception caught and thrown by misk doesn't include the MDC tags and doesn't show up in the search. Using this will mean exceptions will be visible in the sequence of logs relating to a tag. See the logging example below for usage and the logging output.

Usage:

First set up a logger class with relevant MDC functions for the code base:

class MyServiceLogger(loggerClass: KClass): TaggedLogger>(loggerClass) { fun processValue(value: String?) = tag("process_value" to value) }

// Create a global helper function to return the above class // Can be called from companion objects or regular classes - will find correct logger fun KClass.getTaggedLogger(): MyServiceLogger { return MyServiceLogger(this) }

Then to use the tagged logger for example:

class ServiceAction (private val webClient: WebClient): WebAction {

Constructors

Link copied to clipboard
constructor(loggerClass: KClass<L>, tags: Set<Tag> = emptySet())

Types

Link copied to clipboard
object Companion

Properties

Link copied to clipboard
open override val underlyingLogger: Logger

Functions

Link copied to clipboard
fun <T> asContext(f: () -> T): T
Link copied to clipboard
@CheckReturnValue
open fun atDebug(): LoggingEventBuilder
Link copied to clipboard
@CheckReturnValue
open fun atError(): LoggingEventBuilder
Link copied to clipboard
@CheckReturnValue
open fun atInfo(): LoggingEventBuilder
Link copied to clipboard
@CheckReturnValue
open fun atLevel(p0: Level): LoggingEventBuilder
Link copied to clipboard
@CheckReturnValue
open fun atTrace(): LoggingEventBuilder
Link copied to clipboard
@CheckReturnValue
open fun atWarn(): LoggingEventBuilder
Link copied to clipboard
open override fun <T : Throwable> catching(throwable: T)
Link copied to clipboard
open override fun debug(msg: () -> Any?)
open override fun debug(t: Throwable?, msg: () -> Any?)
open override fun debug(marker: Marker?, msg: () -> Any?)
open override fun debug(marker: Marker?, t: Throwable?, msg: () -> Any?)
open override fun debug(p0: String)
open override fun debug(p0: String, p1: Any)
open override fun debug(p0: String, vararg p1: Any)
open override fun debug(p0: String, p1: Throwable)
open override fun debug(p0: Marker, p1: String)
open override fun debug(p0: String, p1: Any, p2: Any)
open override fun debug(p0: Marker, p1: String, p2: Any)
open override fun debug(p0: Marker, p1: String, vararg p2: Any)
open override fun debug(p0: Marker, p1: String, p2: Throwable)
open override fun debug(p0: Marker, p1: String, p2: Any, p3: Any)
Link copied to clipboard
fun KLogger.debug(vararg tags: Tag, message: () -> Any?)
fun KLogger.debug(th: Throwable, vararg tags: Tag, message: () -> Any?)
Link copied to clipboard
open override fun entry(vararg argArray: Any?)
Link copied to clipboard
open override fun error(msg: () -> Any?)
open override fun error(t: Throwable?, msg: () -> Any?)
open override fun error(marker: Marker?, msg: () -> Any?)
open override fun error(marker: Marker?, t: Throwable?, msg: () -> Any?)
open override fun error(p0: String)
open override fun error(p0: String, p1: Any)
open override fun error(p0: String, vararg p1: Any)
open override fun error(p0: String, p1: Throwable)
open override fun error(p0: Marker, p1: String)
open override fun error(p0: String, p1: Any, p2: Any)
open override fun error(p0: Marker, p1: String, p2: Any)
open override fun error(p0: Marker, p1: String, vararg p2: Any)
open override fun error(p0: Marker, p1: String, p2: Throwable)
open override fun error(p0: Marker, p1: String, p2: Any, p3: Any)
Link copied to clipboard
fun KLogger.error(vararg tags: Tag, message: () -> Any?)
fun KLogger.error(th: Throwable, vararg tags: Tag, message: () -> Any?)
Link copied to clipboard
open override fun exit()
open override fun <T> exit(result: T): T
Link copied to clipboard
open override fun getName(): String
Link copied to clipboard
open override fun info(msg: () -> Any?)
open override fun info(t: Throwable?, msg: () -> Any?)
open override fun info(marker: Marker?, msg: () -> Any?)
open override fun info(marker: Marker?, t: Throwable?, msg: () -> Any?)
open override fun info(p0: String)
open override fun info(p0: String, p1: Any)
open override fun info(p0: String, vararg p1: Any)
open override fun info(p0: String, p1: Throwable)
open override fun info(p0: Marker, p1: String)
open override fun info(p0: String, p1: Any, p2: Any)
open override fun info(p0: Marker, p1: String, p2: Any)
open override fun info(p0: Marker, p1: String, vararg p2: Any)
open override fun info(p0: Marker, p1: String, p2: Throwable)
open override fun info(p0: Marker, p1: String, p2: Any, p3: Any)
Link copied to clipboard
fun KLogger.info(vararg tags: Tag, message: () -> Any?)
fun KLogger.info(th: Throwable, vararg tags: Tag, message: () -> Any?)
Link copied to clipboard
open override fun isDebugEnabled(): Boolean
open override fun isDebugEnabled(p0: Marker): Boolean
Link copied to clipboard
open fun isEnabledForLevel(p0: Level): Boolean
Link copied to clipboard
open override fun isErrorEnabled(): Boolean
open override fun isErrorEnabled(p0: Marker): Boolean
Link copied to clipboard
open override fun isInfoEnabled(): Boolean
open override fun isInfoEnabled(p0: Marker): Boolean
Link copied to clipboard
open override fun isTraceEnabled(): Boolean
open override fun isTraceEnabled(p0: Marker): Boolean
Link copied to clipboard
open override fun isWarnEnabled(): Boolean
open override fun isWarnEnabled(p0: Marker): Boolean
Link copied to clipboard
fun KLogger.log(level: Level, vararg tags: Tag, message: () -> Any?)
fun KLogger.log(level: Level, th: Throwable, vararg tags: Tag, message: () -> Any?)
Link copied to clipboard
open fun makeLoggingEventBuilder(p0: Level): LoggingEventBuilder
Link copied to clipboard
fun KLogger.sampled(sampler: Sampler = Sampler.rateLimiting(1L)): KLogger

Returns a logger that samples logs. This logger MUST be instantiated statically, in a companion object or as a Singleton.

Link copied to clipboard
fun tag(vararg newTags: Tag): R
Link copied to clipboard
open override fun <T : Throwable> throwing(throwable: T): T
Link copied to clipboard
open override fun trace(msg: () -> Any?)
open override fun trace(t: Throwable?, msg: () -> Any?)
open override fun trace(marker: Marker?, msg: () -> Any?)
open override fun trace(marker: Marker?, t: Throwable?, msg: () -> Any?)
open override fun trace(p0: String)
open override fun trace(p0: String, p1: Any)
open override fun trace(p0: String, vararg p1: Any)
open override fun trace(p0: String, p1: Throwable)
open override fun trace(p0: Marker, p1: String)
open override fun trace(p0: String, p1: Any, p2: Any)
open override fun trace(p0: Marker, p1: String, p2: Any)
open override fun trace(p0: Marker, p1: String, vararg p2: Any)
open override fun trace(p0: Marker, p1: String, p2: Throwable)
open override fun trace(p0: Marker, p1: String, p2: Any, p3: Any)
Link copied to clipboard
fun KLogger.trace(vararg tags: Tag, message: () -> Any?)
fun KLogger.trace(th: Throwable, vararg tags: Tag, message: () -> Any?)
Link copied to clipboard
open override fun warn(msg: () -> Any?)
open override fun warn(t: Throwable?, msg: () -> Any?)
open override fun warn(marker: Marker?, msg: () -> Any?)
open override fun warn(marker: Marker?, t: Throwable?, msg: () -> Any?)
open override fun warn(p0: String)
open override fun warn(p0: String, p1: Any)
open override fun warn(p0: String, vararg p1: Any)
open override fun warn(p0: String, p1: Throwable)
open override fun warn(p0: Marker, p1: String)
open override fun warn(p0: String, p1: Any, p2: Any)
open override fun warn(p0: Marker, p1: String, p2: Any)
open override fun warn(p0: Marker, p1: String, vararg p2: Any)
open override fun warn(p0: Marker, p1: String, p2: Throwable)
open override fun warn(p0: Marker, p1: String, p2: Any, p3: Any)
Link copied to clipboard
fun KLogger.warn(vararg tags: Tag, message: () -> Any?)
fun KLogger.warn(th: Throwable, vararg tags: Tag, message: () -> Any?)