generated from rnentjes/kotlin-server-web-empty
Version. 1.1.0
This commit is contained in:
@@ -8,7 +8,7 @@ plugins {
|
|||||||
}
|
}
|
||||||
|
|
||||||
group = "nl.astraeus"
|
group = "nl.astraeus"
|
||||||
version = "1.0.2-SNAPSHOT"
|
version = "1.1.0"
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
|
|||||||
@@ -17,9 +17,10 @@ expect fun getCaller(): String?
|
|||||||
|
|
||||||
class Logger(
|
class Logger(
|
||||||
var level: LogLevel = LogLevel.INFO,
|
var level: LogLevel = LogLevel.INFO,
|
||||||
val name: String = ""
|
val name: String = "",
|
||||||
|
val keepRecent: Int = 1000,
|
||||||
) {
|
) {
|
||||||
|
val recentMessages = StringArrayRing(keepRecent)
|
||||||
|
|
||||||
fun trace(message: () -> String?) = log(LogLevel.TRACE, null, message)
|
fun trace(message: () -> String?) = log(LogLevel.TRACE, null, message)
|
||||||
fun debug(message: () -> String?) = log(LogLevel.DEBUG, null, message)
|
fun debug(message: () -> String?) = log(LogLevel.DEBUG, null, message)
|
||||||
@@ -47,6 +48,11 @@ class Logger(
|
|||||||
|
|
||||||
val logEntry = StringBuilder()
|
val logEntry = StringBuilder()
|
||||||
|
|
||||||
|
if (name.isNotEmpty()) {
|
||||||
|
logEntry.append("[")
|
||||||
|
logEntry.append(name)
|
||||||
|
logEntry.append("] ")
|
||||||
|
}
|
||||||
logEntry.append(timestamp)
|
logEntry.append(timestamp)
|
||||||
logEntry.append(" - ")
|
logEntry.append(" - ")
|
||||||
logEntry.append(level.name)
|
logEntry.append(level.name)
|
||||||
@@ -63,6 +69,8 @@ class Logger(
|
|||||||
|
|
||||||
println(logEntry)
|
println(logEntry)
|
||||||
thrown?.printStackTrace()
|
thrown?.printStackTrace()
|
||||||
|
|
||||||
|
recentMessages.add(logEntry.toString())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
23
src/commonMain/kotlin/nl/astraeus/logger/StringArrayRing.kt
Normal file
23
src/commonMain/kotlin/nl/astraeus/logger/StringArrayRing.kt
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
package nl.astraeus.logger
|
||||||
|
|
||||||
|
class StringArrayRing(
|
||||||
|
val size: Int = 1000
|
||||||
|
) {
|
||||||
|
private var writeIndex = 0
|
||||||
|
private val array = Array(size) { "" }
|
||||||
|
|
||||||
|
fun add(str: String) {
|
||||||
|
array[writeIndex] = str
|
||||||
|
writeIndex = (writeIndex + 1) % size
|
||||||
|
}
|
||||||
|
|
||||||
|
fun get(): List<String> {
|
||||||
|
var readIndex = (writeIndex + 1) % size
|
||||||
|
val result = mutableListOf<String>()
|
||||||
|
repeat(size) {
|
||||||
|
result.add(array[readIndex])
|
||||||
|
readIndex = (readIndex + 1) % size
|
||||||
|
}
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user