generated from rnentjes/kotlin-server-web-empty
Version. 1.1.0
This commit is contained in:
@@ -8,7 +8,7 @@ plugins {
|
||||
}
|
||||
|
||||
group = "nl.astraeus"
|
||||
version = "1.0.2-SNAPSHOT"
|
||||
version = "1.1.0"
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
|
||||
@@ -17,9 +17,10 @@ expect fun getCaller(): String?
|
||||
|
||||
class Logger(
|
||||
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 debug(message: () -> String?) = log(LogLevel.DEBUG, null, message)
|
||||
@@ -47,6 +48,11 @@ class Logger(
|
||||
|
||||
val logEntry = StringBuilder()
|
||||
|
||||
if (name.isNotEmpty()) {
|
||||
logEntry.append("[")
|
||||
logEntry.append(name)
|
||||
logEntry.append("] ")
|
||||
}
|
||||
logEntry.append(timestamp)
|
||||
logEntry.append(" - ")
|
||||
logEntry.append(level.name)
|
||||
@@ -63,6 +69,8 @@ class Logger(
|
||||
|
||||
println(logEntry)
|
||||
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