DArena/src/main/kotlin/nl/kallestruik/darena/util/Logger.kt

53 lines
1.4 KiB
Kotlin

package nl.kallestruik.darena.util
import kotlin.reflect.KClass
object Logger {
var level: LogLevel = LogLevel.TRACE
fun trace(source: KClass<*>, message: String) {
if (level.shouldLog(LogLevel.TRACE))
println("[TRACE] [${source.qualifiedName}] $message")
}
fun debug(source: KClass<*>, message: String) {
if (level.shouldLog(LogLevel.DEBUG))
println("[DEBUG] [${source.qualifiedName}] $message")
}
fun info(source: KClass<*>, message: String) {
if (level.shouldLog(LogLevel.INFO))
println("[INFO] [${source.qualifiedName}] $message")
}
fun warn(source: KClass<*>, message: String) {
if (level.shouldLog(LogLevel.WARN))
println("[WARN] [${source.qualifiedName}] $message")
}
fun error(source: KClass<*>, message: String) {
if (level.shouldLog(LogLevel.ERROR))
println("[ERROR] [${source.qualifiedName}] $message")
}
fun critical(source: KClass<*>, message: String) {
if (level.shouldLog(LogLevel.CRITICAL))
println("[CRITICAL] [${source.qualifiedName}] $message")
}
enum class LogLevel(
val weight: Int
) {
TRACE(100),
DEBUG(80),
INFO(60),
WARN(40),
ERROR(20),
CRITICAL(0);
fun shouldLog(level: LogLevel): Boolean {
return level.weight <= weight
}
}
}