From df89509e51f5d10889cc4196c51f3e983aa39eab Mon Sep 17 00:00:00 2001 From: Bixilon Date: Thu, 20 Jan 2022 23:20:30 +0100 Subject: [PATCH] option to disable (default) verbose start logging, set a ton of start messages to verbose --- src/main/java/de/bixilon/minosoft/Minosoft.kt | 6 +-- .../connection/status/StatusConnection.kt | 2 +- .../protocol/protocol/LANServerListener.kt | 8 +-- .../de/bixilon/minosoft/terminal/CLI.java | 2 +- .../minosoft/terminal/CommandLineArguments.kt | 5 ++ .../minosoft/terminal/RunConfiguration.kt | 2 + .../de/bixilon/minosoft/util/logging/Log.kt | 51 +++++++++++-------- .../minosoft/util/logging/LogPrintStream.kt | 2 +- 8 files changed, 46 insertions(+), 32 deletions(-) diff --git a/src/main/java/de/bixilon/minosoft/Minosoft.kt b/src/main/java/de/bixilon/minosoft/Minosoft.kt index 029f28177..51c93cafd 100644 --- a/src/main/java/de/bixilon/minosoft/Minosoft.kt +++ b/src/main/java/de/bixilon/minosoft/Minosoft.kt @@ -67,7 +67,7 @@ object Minosoft { KUtil.initUtilClasses() MINOSOFT_ASSETS_MANAGER.load(CountUpAndDownLatch(0)) - Log.log(LogMessageType.OTHER, LogLevels.INFO) { "Starting minosoft" } + Log.log(LogMessageType.OTHER, LogLevels.INFO) { "Starting minosoft..." } if (OSUtil.OS == OSUtil.OSs.MAC && !RunConfiguration.X_START_ON_FIRST_THREAD_SET && !RunConfiguration.DISABLE_RENDERING) { Log.log(LogMessageType.GENERAL, LogLevels.WARN) { "You are using MacOS. To use rendering you have to add the jvm argument §9-XstartOnFirstThread§r. Please ensure it is set!" } } @@ -97,7 +97,7 @@ object Minosoft { taskWorker += Task(identifier = StartupTasks.FILE_WATCHER, priority = ThreadPool.HIGH, optional = true, executor = { Log.log(LogMessageType.GENERAL, LogLevels.VERBOSE) { "Starting file watcher service..." } FileWatcherService.start() - Log.log(LogMessageType.GENERAL, LogLevels.INFO) { "File watcher service started!" } + Log.log(LogMessageType.GENERAL, LogLevels.VERBOSE) { "File watcher service started!" } }) @@ -142,7 +142,7 @@ object Minosoft { START_UP_LATCH.dec() // remove initial count START_UP_LATCH.await() - Log.log(LogMessageType.OTHER, LogLevels.INFO) { "All startup tasks executed!" } + Log.log(LogMessageType.OTHER, LogLevels.INFO) { "Loaded everything!" } GlobalEventMaster.fireEvent(FinishInitializingEvent()) diff --git a/src/main/java/de/bixilon/minosoft/protocol/network/connection/status/StatusConnection.kt b/src/main/java/de/bixilon/minosoft/protocol/network/connection/status/StatusConnection.kt index f41a9aa92..12cec401a 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/network/connection/status/StatusConnection.kt +++ b/src/main/java/de/bixilon/minosoft/protocol/network/connection/status/StatusConnection.kt @@ -142,7 +142,7 @@ class StatusConnection( } val tryAddress = tryAddress ?: return@execute - Log.log(LogMessageType.NETWORK_RESOLVING) { "Trying to ping $tryAddress (from $address)" } + Log.log(LogMessageType.NETWORK_RESOLVING) { "Pinging$tryAddress (from $address)" } state = StatusConnectionStates.ESTABLISHING network.connect(tryAddress, false) diff --git a/src/main/java/de/bixilon/minosoft/protocol/protocol/LANServerListener.kt b/src/main/java/de/bixilon/minosoft/protocol/protocol/LANServerListener.kt index fdc075592..0c6975ee5 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/protocol/LANServerListener.kt +++ b/src/main/java/de/bixilon/minosoft/protocol/protocol/LANServerListener.kt @@ -70,14 +70,14 @@ object LANServerListener { val socket = MulticastSocket(ProtocolDefinition.LAN_SERVER_BROADCAST_PORT) socket.joinGroup(InetSocketAddress(ProtocolDefinition.LAN_SERVER_BROADCAST_INET_ADDRESS, ProtocolDefinition.LAN_SERVER_BROADCAST_PORT), NetworkInterface.getByInetAddress(ProtocolDefinition.LAN_SERVER_BROADCAST_INET_ADDRESS)) val buffer = ByteArray(256) // this should be enough, if the packet is longer, it is probably invalid - Log.log(LogMessageType.NETWORK_STATUS, LogLevels.INFO) { "Listening for LAN servers..." } + Log.log(LogMessageType.NETWORK_STATUS, LogLevels.VERBOSE) { "Listening for LAN servers..." } latch?.dec() while (true) { try { val packet = DatagramPacket(buffer, buffer.size) socket.receive(packet) val broadcast = String(buffer, 0, packet.length, StandardCharsets.UTF_8) - Log.log(LogMessageType.NETWORK_PACKETS_IN, LogLevels.INFO) { "LAN servers broadcast (${packet.address.hostAddress}:${packet.port}): $broadcast" } + Log.log(LogMessageType.NETWORK_PACKETS_IN, LogLevels.VERBOSE) { "LAN servers broadcast (${packet.address.hostAddress}:${packet.port}): $broadcast" } val sender = packet.address if (SERVERS.containsKey(sender)) { // This guy sent us already a server, maybe just the regular 1.5 second interval, a duplicate or a DOS attack...We don't care @@ -93,7 +93,7 @@ object LANServerListener { if (GlobalEventMaster.fireEvent(LANServerDiscoverEvent(packet.address, server))) { continue } - Log.log(LogMessageType.NETWORK_PACKETS_IN, LogLevels.INFO) { "Discovered LAN servers: $server" } + Log.log(LogMessageType.NETWORK_STATUS, LogLevels.INFO) { "Discovered LAN servers: $server" } SERVERS[sender] = server LANServerType.servers += server } catch (ignored: Throwable) { @@ -108,7 +108,7 @@ object LANServerListener { } finally { this.listeningThread = null SERVERS.clear() - Log.log(LogMessageType.NETWORK_STATUS, LogLevels.INFO) { "Stop listening for LAN servers..." } + Log.log(LogMessageType.NETWORK_STATUS, LogLevels.VERBOSE) { "Stop listening for LAN servers..." } } }, "LAN Server Listener") thread.start() diff --git a/src/main/java/de/bixilon/minosoft/terminal/CLI.java b/src/main/java/de/bixilon/minosoft/terminal/CLI.java index e5c7328ff..4618b33fd 100644 --- a/src/main/java/de/bixilon/minosoft/terminal/CLI.java +++ b/src/main/java/de/bixilon/minosoft/terminal/CLI.java @@ -76,7 +76,7 @@ public class CLI { public static void initialize() throws InterruptedException { CountUpAndDownLatch latch = new CountUpAndDownLatch(1); new Thread(() -> { - Log.log(LogMessageType.OTHER, LogLevels.INFO, () -> "Initializing CLI..."); + Log.log(LogMessageType.OTHER, LogLevels.VERBOSE, () -> "Initializing CLI..."); try { TerminalBuilder builder = TerminalBuilder.builder(); diff --git a/src/main/java/de/bixilon/minosoft/terminal/CommandLineArguments.kt b/src/main/java/de/bixilon/minosoft/terminal/CommandLineArguments.kt index e6dd9557f..63aea2957 100644 --- a/src/main/java/de/bixilon/minosoft/terminal/CommandLineArguments.kt +++ b/src/main/java/de/bixilon/minosoft/terminal/CommandLineArguments.kt @@ -75,6 +75,10 @@ object CommandLineArguments { addArgument("--disable_profile_hot_reloading") .action(Arguments.storeTrue()) .help("Disables profile hot reloading") + + addArgument("--verbose") + .action(Arguments.storeTrue()) + .help("Enables verbose logging (only affects pre profiles loading stage)") } fun parse(args: Array) { @@ -117,5 +121,6 @@ object CommandLineArguments { RunConfiguration.PROFILES_HOT_RELOADING = !namespace.getBoolean("disable_profile_hot_reloading") + RunConfiguration.VERBOSE_LOGGING = namespace.getBoolean("verbose") } } diff --git a/src/main/java/de/bixilon/minosoft/terminal/RunConfiguration.kt b/src/main/java/de/bixilon/minosoft/terminal/RunConfiguration.kt index 587b6418f..ddb1a8e4c 100644 --- a/src/main/java/de/bixilon/minosoft/terminal/RunConfiguration.kt +++ b/src/main/java/de/bixilon/minosoft/terminal/RunConfiguration.kt @@ -68,4 +68,6 @@ object RunConfiguration { var SKIP_RENDERERS: List = listOf() var OPEN_Gl_ON_FIRST_THREAD = OSUtil.OS == OSUtil.OSs.MAC + + var VERBOSE_LOGGING = false } diff --git a/src/main/java/de/bixilon/minosoft/util/logging/Log.kt b/src/main/java/de/bixilon/minosoft/util/logging/Log.kt index a236c6c96..134b6f933 100644 --- a/src/main/java/de/bixilon/minosoft/util/logging/Log.kt +++ b/src/main/java/de/bixilon/minosoft/util/logging/Log.kt @@ -106,17 +106,29 @@ object Log { GlobalEventMaster.registerEvent(CallbackEventInvoker.of { this.levels = it.profile.log.levels }) } + + private fun skipLogging(type: LogMessageType, level: LogLevels): Boolean { + val levels = levels + if (levels == null) { + if (level.ordinal > LogLevels.INFO.ordinal) { + return !RunConfiguration.VERBOSE_LOGGING + } + return false + } + levels[type]?.let { + if (it.ordinal < level.ordinal) { + return true + } + } + return false + } + @DoNotCall @JvmOverloads @JvmStatic - fun log(logMessageType: LogMessageType, level: LogLevels = LogLevels.INFO, additionalPrefix: ChatComponent? = null, message: Any, vararg formatting: Any) { - val levels = levels - if (levels != null) { - levels[logMessageType]?.let { - if (it.ordinal < level.ordinal) { - return - } - } + fun log(type: LogMessageType, level: LogLevels = LogLevels.INFO, additionalPrefix: ChatComponent? = null, message: Any, vararg formatting: Any) { + if (skipLogging(type, level)) { + return } val formattedMessage = when (message) { is ChatComponent -> message @@ -142,7 +154,7 @@ object Log { MessageToSend( message = formattedMessage, time = TimeUtil.time, - logMessageType = logMessageType, + logMessageType = type, level = level, thread = Thread.currentThread(), additionalPrefix = additionalPrefix, @@ -151,26 +163,21 @@ object Log { } @JvmStatic - fun log(logMessageType: LogMessageType, level: LogLevels = LogLevels.INFO, additionalPrefix: ChatComponent? = null, messageBuilder: () -> Any) { - val levels = levels - if (levels != null) { - levels[logMessageType]?.let { - if (it.ordinal < level.ordinal) { - return - } - } + fun log(type: LogMessageType, level: LogLevels = LogLevels.INFO, additionalPrefix: ChatComponent? = null, messageBuilder: () -> Any) { + if (skipLogging(type, level)) { + return } - log(logMessageType, level, additionalPrefix, messageBuilder()) + log(type, level, additionalPrefix, messageBuilder()) } @JvmStatic - fun log(logMessageType: LogMessageType, level: LogLevels, messageBuilder: () -> Any) { - log(logMessageType, level = level, additionalPrefix = null, messageBuilder = messageBuilder) + fun log(type: LogMessageType, level: LogLevels, messageBuilder: () -> Any) { + log(type, level = level, additionalPrefix = null, messageBuilder = messageBuilder) } @JvmStatic - fun log(logMessageType: LogMessageType, messageBuilder: () -> Any) { - log(logMessageType, additionalPrefix = null, messageBuilder = messageBuilder) + fun log(type: LogMessageType, messageBuilder: () -> Any) { + log(type, additionalPrefix = null, messageBuilder = messageBuilder) } @Deprecated(message = "Java only") diff --git a/src/main/java/de/bixilon/minosoft/util/logging/LogPrintStream.kt b/src/main/java/de/bixilon/minosoft/util/logging/LogPrintStream.kt index 698996dd9..4acde917d 100644 --- a/src/main/java/de/bixilon/minosoft/util/logging/LogPrintStream.kt +++ b/src/main/java/de/bixilon/minosoft/util/logging/LogPrintStream.kt @@ -20,6 +20,6 @@ class LogPrintStream( ) : PrintStream(nullOutputStream()) { override fun print(string: String) { - Log.log(message = string, logMessageType = type, level = level) + Log.log(message = string, type = type, level = level) } }