mirror of
https://github.com/mamoe/mirai.git
synced 2025-03-14 07:10:09 +08:00
Make LoggingStateObserver
into use
This commit is contained in:
parent
44bfe3dbb6
commit
b8b8cb1fad
@ -35,6 +35,8 @@ import net.mamoe.mirai.internal.network.handler.NetworkHandlerSupport.BaseStateI
|
||||
import net.mamoe.mirai.internal.network.handler.selector.KeepAliveNetworkHandlerSelector
|
||||
import net.mamoe.mirai.internal.network.handler.selector.NetworkException
|
||||
import net.mamoe.mirai.internal.network.handler.selector.SelectorNetworkHandler
|
||||
import net.mamoe.mirai.internal.network.handler.state.CombinedStateObserver.Companion.plus
|
||||
import net.mamoe.mirai.internal.network.handler.state.LoggingStateObserver
|
||||
import net.mamoe.mirai.internal.network.handler.state.StateChangedObserver
|
||||
import net.mamoe.mirai.internal.network.handler.state.StateObserver
|
||||
import net.mamoe.mirai.internal.network.handler.state.safe
|
||||
@ -116,7 +118,7 @@ internal open class QQAndroidBot constructor(
|
||||
}
|
||||
}
|
||||
},
|
||||
).safe(logger.subLogger("StateObserver"))
|
||||
).safe(logger.subLogger("StateObserver")) + LoggingStateObserver.createLoggingIfEnabled()
|
||||
}
|
||||
|
||||
|
||||
|
@ -13,13 +13,23 @@ import net.mamoe.mirai.internal.network.handler.NetworkHandler
|
||||
import net.mamoe.mirai.internal.network.handler.NetworkHandlerSupport
|
||||
import net.mamoe.mirai.utils.MiraiLogger
|
||||
import net.mamoe.mirai.utils.debug
|
||||
import net.mamoe.mirai.utils.systemProp
|
||||
|
||||
internal class LoggingStateObserver(
|
||||
val logger: MiraiLogger,
|
||||
private val showStacktrace: Boolean = false
|
||||
) : StateObserver {
|
||||
override fun toString(): String {
|
||||
return "LoggingStateObserver"
|
||||
override fun toString(): String = "LoggingStateObserver(logger=${logger.identity})"
|
||||
|
||||
override fun beforeStateChanged(
|
||||
networkHandler: NetworkHandlerSupport,
|
||||
previous: NetworkHandlerSupport.BaseStateImpl,
|
||||
new: NetworkHandlerSupport.BaseStateImpl
|
||||
) {
|
||||
logger.debug(
|
||||
{ "Before change: ${previous.correspondingState} -> ${new.correspondingState}" },
|
||||
if (showStacktrace) Exception("Show stacktrace") else null
|
||||
)
|
||||
}
|
||||
|
||||
override fun stateChanged(
|
||||
@ -59,4 +69,27 @@ internal class LoggingStateObserver(
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
companion object {
|
||||
fun createLoggingIfEnabled(): StateObserver? {
|
||||
return when (systemProp(
|
||||
"mirai.debug.network.state.observer.logging",
|
||||
"off"
|
||||
).lowercase()) {
|
||||
"full" -> {
|
||||
SafeStateObserver(
|
||||
LoggingStateObserver(MiraiLogger.create("States"), true),
|
||||
MiraiLogger.create("LoggingStateObserver errors")
|
||||
)
|
||||
}
|
||||
"on", "true" -> {
|
||||
SafeStateObserver(
|
||||
LoggingStateObserver(MiraiLogger.create("States"), false),
|
||||
MiraiLogger.create("LoggingStateObserver errors")
|
||||
)
|
||||
}
|
||||
else -> null
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -12,8 +12,6 @@ package net.mamoe.mirai.internal.network.handler.state
|
||||
import net.mamoe.mirai.internal.network.component.ComponentKey
|
||||
import net.mamoe.mirai.internal.network.handler.NetworkHandler
|
||||
import net.mamoe.mirai.internal.network.handler.NetworkHandlerSupport
|
||||
import net.mamoe.mirai.utils.MiraiLogger
|
||||
import net.mamoe.mirai.utils.systemProp
|
||||
|
||||
/**
|
||||
* Observer of state changes.
|
||||
@ -76,27 +74,5 @@ internal interface StateObserver {
|
||||
fun chainOfNotNull(
|
||||
vararg observers: StateObserver?,
|
||||
): StateObserver = CombinedStateObserver(observers.filterNotNull())
|
||||
|
||||
val LOGGING: StateObserver? = when (systemProp(
|
||||
"mirai.debug.network.state.observer.logging",
|
||||
"off"
|
||||
).lowercase()) {
|
||||
"full" -> {
|
||||
SafeStateObserver(
|
||||
LoggingStateObserver(MiraiLogger.create("States"), true),
|
||||
MiraiLogger.create("LoggingStateObserver errors")
|
||||
)
|
||||
}
|
||||
"off", "false" -> {
|
||||
null
|
||||
}
|
||||
"on", "true" -> {
|
||||
SafeStateObserver(
|
||||
LoggingStateObserver(MiraiLogger.create("States"), false),
|
||||
MiraiLogger.create("LoggingStateObserver errors")
|
||||
)
|
||||
}
|
||||
else -> null
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user