Optimistic locking option
This commit is contained in:
@@ -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)
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user