53 lines
1.4 KiB
Kotlin
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
|
|
}
|
|
}
|
|
}
|