option to disable (default) verbose start logging, set a ton of start messages to verbose

This commit is contained in:
Bixilon 2022-01-20 23:20:30 +01:00
parent 40b805f440
commit df89509e51
No known key found for this signature in database
GPG Key ID: 5CAD791931B09AC4
8 changed files with 46 additions and 32 deletions

View File

@ -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())

View File

@ -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)

View File

@ -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()

View File

@ -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();

View File

@ -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<String>) {
@ -117,5 +121,6 @@ object CommandLineArguments {
RunConfiguration.PROFILES_HOT_RELOADING = !namespace.getBoolean("disable_profile_hot_reloading")
RunConfiguration.VERBOSE_LOGGING = namespace.getBoolean("verbose")
}
}

View File

@ -68,4 +68,6 @@ object RunConfiguration {
var SKIP_RENDERERS: List<ResourceLocation> = listOf()
var OPEN_Gl_ON_FIRST_THREAD = OSUtil.OS == OSUtil.OSs.MAC
var VERBOSE_LOGGING = false
}

View File

@ -106,18 +106,30 @@ object Log {
GlobalEventMaster.registerEvent(CallbackEventInvoker.of<OtherProfileSelectEvent> { 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) {
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
is Throwable -> {
@ -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) {
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")

View File

@ -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)
}
}