shared/src/commonMain/kotlin/org/jetbrains/kotlinconf/utils/Logger.kt (18 lines of code) (raw):
package org.jetbrains.kotlinconf.utils
interface Logger {
fun log(tag: String, lazyMessage: () -> String)
}
fun Logger.tagged(tag: String) = TaggedLogger(tag, this)
class TaggedLogger(
private val tag: String,
private val delegate: Logger,
) {
fun log(lazyMessage: () -> String) {
delegate.log(tag, lazyMessage)
}
}
class NoopProdLogger : Logger {
override fun log(tag: String, lazyMessage: () -> String) {
// No logging in prod
}
}
internal const val MAX_LOG_MESSAGES_IN_MEMORY = 200