Cleaned logging

master
Robinson 2023-11-28 20:53:37 +01:00
parent 5c4d64f3f1
commit 3a5295efe8
No known key found for this signature in database
GPG Key ID: 8E7DB78588BD6F5C
3 changed files with 48 additions and 33 deletions

View File

@ -42,6 +42,7 @@ import org.slf4j.LoggerFactory
import java.net.Inet4Address
import java.net.Inet6Address
import java.net.InetAddress
import java.util.*
import java.util.concurrent.*
/**
@ -797,11 +798,13 @@ open class Client<CONNECTION : Connection>(config: ClientConfiguration = ClientC
val pubSub = clientConnection.connectionInfo
val connectionType = if (connectionInfo.bufferedMessages) {
val bufferedMessages = connectionInfo.bufferedMessages
val connectionType = if (bufferedMessages) {
"buffered connection"
} else {
"connection"
}
val connectionTypeCaps = connectionType.replaceFirstChar { if (it.isLowerCase()) it.titlecase(Locale.getDefault()) else it.toString() }
val logInfo = pubSub.getLogInfo(logger.isDebugEnabled)
if (logger.isDebugEnabled) {
@ -815,7 +818,7 @@ open class Client<CONNECTION : Connection>(config: ClientConfiguration = ClientC
endPoint = this,
connectionInfo = clientConnection.connectionInfo,
publicKeyValidation = validateRemoteAddress,
enableBufferedMessages = connectionInfo.bufferedMessages,
enableBufferedMessages = bufferedMessages,
cryptoKey = connectionInfo.secretKey
))
@ -824,11 +827,11 @@ open class Client<CONNECTION : Connection>(config: ClientConfiguration = ClientC
if (!handshakeConnection.pubSub.isIpc) {
// NOTE: Client can ALWAYS connect to the server. The server makes the decision if the client can connect or not.
if (logger.isTraceEnabled) {
logger.trace("[${handshakeConnection.details}] (${handshake.connectKey}) Buffered connection (${newConnection.id}) adding new signature for [$addressString -> ${connectionInfo.publicKey.toHexString()}]")
logger.trace("[${handshakeConnection.details}] (${handshake.connectKey}) $connectionTypeCaps (${newConnection.id}) adding new signature for [$addressString -> ${connectionInfo.publicKey.toHexString()}]")
} else if (logger.isDebugEnabled) {
logger.debug("[${handshakeConnection.details}] Buffered connection (${newConnection.id}) adding new signature for [$addressString -> ${connectionInfo.publicKey.toHexString()}]")
logger.debug("[${handshakeConnection.details}] $connectionTypeCaps (${newConnection.id}) adding new signature for [$addressString -> ${connectionInfo.publicKey.toHexString()}]")
} else if (logger.isInfoEnabled) {
logger.info("[${handshakeConnection.details}] Buffered connection adding new signature for [$addressString -> ${connectionInfo.publicKey.toHexString()}]")
logger.info("[${handshakeConnection.details}] $connectionTypeCaps adding new signature for [$addressString -> ${connectionInfo.publicKey.toHexString()}]")
}
storage.addRegisteredServerKey(address!!, connectionInfo.publicKey)
@ -853,9 +856,9 @@ open class Client<CONNECTION : Connection>(config: ClientConfiguration = ClientC
handshakeConnection.close(this)
if (logger.isTraceEnabled) {
logger.debug("[${handshakeConnection.details}] (${handshake.connectKey}) Buffered connection (${newConnection.id}) done with handshake.")
logger.debug("[${handshakeConnection.details}] (${handshake.connectKey}) $connectionTypeCaps (${newConnection.id}) done with handshake.")
} else if (logger.isDebugEnabled) {
logger.debug("[${handshakeConnection.details}] Buffered connection (${newConnection.id}) done with handshake.")
logger.debug("[${handshakeConnection.details}] $connectionTypeCaps (${newConnection.id}) done with handshake.")
}
connection0 = newConnection
@ -937,7 +940,6 @@ open class Client<CONNECTION : Connection>(config: ClientConfiguration = ClientC
if (autoReconnect) {
// clients can reconnect automatically ONLY if there are driver errors, otherwise it's explicit!
eventDispatch.CLOSE.launch {
logger.error("MUST AUTORECONNECT STARTING ON CLOSE ***********************************")
waitForEndpointShutdown()
// also wait for everyone else to shutdown!!
@ -1017,8 +1019,11 @@ open class Client<CONNECTION : Connection>(config: ClientConfiguration = ClientC
return if (c != null) {
c.send(message)
} else if (isShutdown()) {
logger.error("Cannot send a message '${message::class.java}' when there is no connection! (We are shutdown)")
false
} else {
val exception = TransmitException("Cannot send a message when there is no connection!")
val exception = TransmitException("Cannot send message '${message::class.java}' when there is no connection!")
listenerManager.notifyError(exception)
false
}
@ -1037,8 +1042,11 @@ open class Client<CONNECTION : Connection>(config: ClientConfiguration = ClientC
return if (c != null) {
@Suppress("UNCHECKED_CAST")
c.send(message, onSuccessCallback as Connection.() -> Unit)
} else if (isShutdown()) {
logger.error("Cannot send-sync message '${message::class.java}' when there is no connection! (We are shutdown)")
false
} else {
val exception = TransmitException("Cannot send-sync a message when there is no connection!")
val exception = TransmitException("Cannot send-sync message '${message::class.java}' when there is no connection!")
listenerManager.notifyError(exception)
false
}
@ -1054,14 +1062,16 @@ open class Client<CONNECTION : Connection>(config: ClientConfiguration = ClientC
fun ping(function: Ping.() -> Unit): Boolean {
val c = connection0
if (c != null) {
return c.ping(function)
return if (c != null) {
c.ping(function)
} else if (isShutdown()) {
logger.error("Cannot send a ping when there is no connection! (We are shutdown)")
false
} else {
val exception = TransmitException("Cannot send a ping when there is no connection!")
listenerManager.notifyError(exception)
false
}
return false
}
/**

View File

@ -41,17 +41,13 @@ data class PubSub(
fun getLogInfo(extraDetails: Boolean): String {
return if (isIpc) {
val prefix = if (tagName.isNotEmpty()) {
EndPoint.IPC_NAME + " $tagName"
EndPoint.IPC_NAME + " ($tagName)"
} else {
EndPoint.IPC_NAME
}
if (extraDetails) {
if (tagName.isNotEmpty()) {
"$prefix sessionID: p=${sessionIdPub} s=${sessionIdSub}, streamID: p=${streamIdPub} s=${streamIdSub}, reg: p=${pub.registrationId()} s=${sub.registrationId()}"
} else {
"$prefix sessionID: p=${sessionIdPub} s=${sessionIdSub}, streamID: p=${streamIdPub} s=${streamIdSub}, reg: p=${pub.registrationId()} s=${sub.registrationId()}"
}
"$prefix sessionID: p=${sessionIdPub} s=${sessionIdSub}, streamID: p=${streamIdPub} s=${streamIdSub}, reg: p=${pub.registrationId()} s=${sub.registrationId()}"
} else {
prefix
}
@ -63,7 +59,7 @@ data class PubSub(
}
if (tagName.isNotEmpty()) {
prefix += " $tagName"
prefix += " ($tagName)"
}
if (extraDetails) {

View File

@ -31,6 +31,7 @@ import net.jodah.expiringmap.ExpiringMap
import org.slf4j.Logger
import java.net.Inet4Address
import java.net.InetAddress
import java.util.*
import java.util.concurrent.*
@ -128,11 +129,17 @@ internal class ServerHandshake<CONNECTION : Connection>(
return true
}
val connectionType = if (newConnection.enableBufferedMessages) {
"Buffered connection"
} else {
"Connection"
}
// Server is the "source", client mirrors the server
if (logger.isTraceEnabled) {
logger.trace("[${newConnection}] (${message.connectKey}) Buffered connection (${newConnection.id}) done with handshake.")
logger.trace("[${newConnection}] (${message.connectKey}) $connectionType (${newConnection.id}) done with handshake.")
} else if (logger.isDebugEnabled) {
logger.debug("[${newConnection}] Buffered connection (${newConnection.id}) done with handshake.")
logger.debug("[${newConnection}] $connectionType (${newConnection.id}) done with handshake.")
}
newConnection.setImage()
@ -239,9 +246,8 @@ internal class ServerHandshake<CONNECTION : Connection>(
): Boolean {
val serialization = config.serialization
val clientTagName = message.tag.let { if (it.isEmpty()) "" else "[$it]" }
if (clientTagName.length > 34) {
// 34 to account for []
val clientTagName = message.tag
if (clientTagName.length > 32) {
listenerManager.notifyError(ServerHandshakeException("[$logInfo] Connection not allowed! Invalid tag name."))
return false
}
@ -361,6 +367,9 @@ internal class ServerHandshake<CONNECTION : Connection>(
"connection"
}
val connectionTypeCaps = connectionType.replaceFirstChar { if (it.isLowerCase()) it.titlecase(Locale.getDefault()) else it.toString() }
val logInfo = newConnectionDriver.pubSub.getLogInfo(logger.isDebugEnabled)
if (logger.isDebugEnabled) {
logger.debug("Creating new $connectionType to $logInfo")
@ -412,9 +421,9 @@ internal class ServerHandshake<CONNECTION : Connection>(
pendingConnections[message.connectKey] = newConnection
if (logger.isTraceEnabled) {
logger.trace("[$logInfo] (${message.connectKey}) buffered connection (${newConnection.id}) responding to handshake hello.")
logger.trace("[$logInfo] (${message.connectKey}) $connectionType (${newConnection.id}) responding to handshake hello.")
} else if (logger.isDebugEnabled) {
logger.debug("[$logInfo] Buffered connection (${newConnection.id}) responding to handshake hello.")
logger.debug("[$logInfo] $connectionTypeCaps (${newConnection.id}) responding to handshake hello.")
}
// this tells the client all the info to connect.
@ -477,9 +486,8 @@ internal class ServerHandshake<CONNECTION : Connection>(
return false
}
val clientTagName = message.tag.let { if (it.isEmpty()) "" else "[$it]" }
if (clientTagName.length > 34) {
// 34 to account for []
val clientTagName = message.tag
if (clientTagName.length > 32) {
listenerManager.notifyError(ServerHandshakeException("[$logInfo] Connection not allowed! Invalid tag name."))
return false
}
@ -628,6 +636,7 @@ internal class ServerHandshake<CONNECTION : Connection>(
"connection"
}
val connectionTypeCaps = connectionType.replaceFirstChar { if (it.isLowerCase()) it.titlecase(Locale.getDefault()) else it.toString() }
val logInfo = newConnectionDriver.pubSub.getLogInfo(logger.isDebugEnabled)
if (logger.isDebugEnabled) {
@ -676,9 +685,9 @@ internal class ServerHandshake<CONNECTION : Connection>(
pendingConnections[message.connectKey] = newConnection
if (logger.isTraceEnabled) {
logger.trace("[$logInfo] Buffered connection (${newConnection.id}) responding to handshake hello.")
logger.trace("[$logInfo] $connectionTypeCaps (${newConnection.id}) responding to handshake hello.")
} else if (logger.isDebugEnabled) {
logger.debug("[$logInfo] Buffered connection (${newConnection.id}) responding to handshake hello.")
logger.debug("[$logInfo] $connectionTypeCaps (${newConnection.id}) responding to handshake hello.")
}
// this tells the client all the info to connect.