Optimistic locking option

This commit is contained in:
2024-05-04 20:57:15 +02:00
parent cc3ac67be6
commit da046fa6ec
10 changed files with 281 additions and 26 deletions

View File

@@ -1,8 +1,62 @@
package nl.astraeus.nl.astraeus.persistence
enum class LogLevel {
TRACE,
DEBUG,
INFO,
WARN,
ERROR
}
object Logger {
var debug: (String) -> Unit = { println("DEBUG: $it") }
var info: (String) -> Unit = { println("INFO: $it") }
var warn: (String) -> Unit = { println("WARN: $it") }
var error: (String) -> Unit = { println("ERROR: $it") }
}
var level: LogLevel = LogLevel.DEBUG
var tracePrinter: (String) -> Unit = { println(it) }
var debugPrinter: (String) -> Unit = { println(it) }
var infoPrinter: (String) -> Unit = { println(it) }
var warnPrinter: (String) -> Unit = { println(it) }
var errorPrinter: (String) -> Unit = { System.err.println(it) }
fun trace(message: String, vararg parameters: Any?) {
if (level <= LogLevel.TRACE) {
writeLogMessage(LogLevel.TRACE, message, *parameters)
}
}
fun debug(message: String, vararg parameters: Any?) {
if (level <= LogLevel.DEBUG) {
writeLogMessage(LogLevel.DEBUG, message, *parameters)
}
}
fun info(message: String, vararg parameters: Any?) {
if (level <= LogLevel.INFO) {
writeLogMessage(LogLevel.INFO, message, *parameters)
}
}
fun warn(message: String, vararg parameters: Any?) {
if (level <= LogLevel.DEBUG) {
writeLogMessage(LogLevel.DEBUG, message, *parameters)
}
}
fun error(message: String, vararg parameters: Any?) {
if (level <= LogLevel.ERROR) {
writeLogMessage(LogLevel.ERROR, message, *parameters)
}
}
private fun writeLogMessage(level: LogLevel, message: String, vararg parameters: Any?) {
val formattedMessage = "[${level}] - ${message.format(*parameters)}"
when (level) {
LogLevel.TRACE -> tracePrinter(formattedMessage)
LogLevel.DEBUG -> debugPrinter(formattedMessage)
LogLevel.INFO -> infoPrinter(formattedMessage)
LogLevel.WARN -> warnPrinter(formattedMessage)
LogLevel.ERROR -> errorPrinter(formattedMessage)
}
}
}