Browse Source

Improve logging

pull/6/head
Aditya Kulkarni 5 years ago
parent
commit
b89ecf66bc
  1. 22
      src/main/kotlin/com/zecqtwallet/wormhole/Service.kt

22
src/main/kotlin/com/zecqtwallet/wormhole/Service.kt

@ -26,7 +26,7 @@ fun main(args : Array<String>) {
session.idleTimeout = 5 * 60 * 1000 // 5 minutes
}
ws.onClose { session, status, message ->
ws.onClose { session, _, _ ->
LOG.info("Closed session ${usermap[session]}")
usermap.remove(session)
}
@ -45,13 +45,14 @@ fun main(args : Array<String>) {
if (j.contains("ping")) {
// Ignore, this is a keep-alive ping
LOG.info("Ping ${usermap[session]}")
logInfo("Ping ${usermap[session]}", j)
// Just send the ping back
session.send(message)
return@onMessage
}
if (j.contains("register")) {
logInfo("Register ${j["register"].toString()}", j)
doRegister(session, j["register"].toString())
return@onMessage
}
@ -60,6 +61,7 @@ fun main(args : Array<String>) {
val s = usermap.getKeys(j["to"].toString()).filter { it.id != session.id }
if (s.isEmpty()) {
// Not connected
logInfo("Error: Peer is not connected", j)
sendError(session, "Peer is not connected")
return@onMessage
}
@ -68,6 +70,7 @@ fun main(args : Array<String>) {
LOG.warn("Warning, multiple sessions matched for ${j["to"].toString()}")
}
logInfo("Routed message for ${j["to"].toString()}", j)
s[0].send(message)
return@onMessage
} else {
@ -76,7 +79,7 @@ fun main(args : Array<String>) {
return@onMessage
}
} catch (e: Throwable) {
LOG.error("Exception: ${e.localizedMessage}")
LOG.error("Exception: ${e.localizedMessage}, Message was: $message")
session.close(1000, "Invalid json")
}
}
@ -92,17 +95,24 @@ fun main(args : Array<String>) {
fun doRegister(session: WsSession, id: String) {
if (usermap.containsKey(session)) {
LOG.warn("Already registered a session ${id}")
LOG.warn("Already registered a session $id")
return
}
LOG.info("Registered $id")
usermap[session] = id
}
fun sendError(session: WsSession, err: String) {
if (session.isOpen) {
LOG.info("Sending error: ${usermap[session]} -> $err")
session.send(json { obj("error" to err) }.toJsonString())
}
}
fun logInfo(t: String, j: JsonObject) {
val l = j.map {
val s = it.value.toString()
it.key to if (s.length > 10) s.take(10) + "...{" + s.length + "}" else s
}.toString().replace("\n", "").trim()
LOG.info(t + l)
}
Loading…
Cancel
Save