Implement logic for logging thread control
The logging thread now automatically starts or shuts down based on EngineConfiguration#optimizeLogging and Engine#state == EngineState.RUNNING
This commit is contained in:
parent
bd70b17236
commit
c984974252
2 changed files with 12 additions and 2 deletions
|
@ -24,6 +24,7 @@ import de.staropensource.sosengine.base.classes.Configuration;
|
||||||
import de.staropensource.sosengine.base.classes.helpers.EventHelper;
|
import de.staropensource.sosengine.base.classes.helpers.EventHelper;
|
||||||
import de.staropensource.sosengine.base.logging.CrashHandler;
|
import de.staropensource.sosengine.base.logging.CrashHandler;
|
||||||
import de.staropensource.sosengine.base.logging.Logger;
|
import de.staropensource.sosengine.base.logging.Logger;
|
||||||
|
import de.staropensource.sosengine.base.types.EngineState;
|
||||||
import de.staropensource.sosengine.base.types.logging.LogLevel;
|
import de.staropensource.sosengine.base.types.logging.LogLevel;
|
||||||
import de.staropensource.sosengine.base.types.vectors.Vec2f;
|
import de.staropensource.sosengine.base.types.vectors.Vec2f;
|
||||||
import de.staropensource.sosengine.base.utility.parser.PropertyParser;
|
import de.staropensource.sosengine.base.utility.parser.PropertyParser;
|
||||||
|
@ -306,7 +307,13 @@ public final class EngineConfiguration extends Configuration {
|
||||||
|
|
||||||
case "errorShortcodeConverter" -> errorShortcodeConverter = parser.getBoolean(group + property);
|
case "errorShortcodeConverter" -> errorShortcodeConverter = parser.getBoolean(group + property);
|
||||||
|
|
||||||
case "optimizeLogging" -> optimizeLogging = parser.getBoolean(group + property);
|
case "optimizeLogging" -> {
|
||||||
|
optimizeLogging = parser.getBoolean(group + property);
|
||||||
|
|
||||||
|
// Start logging thread automatically
|
||||||
|
if (optimizeLogging && Engine.getInstance().getState() == EngineState.RUNNING)
|
||||||
|
Logger.startLoggingThread();
|
||||||
|
}
|
||||||
case "optimizeEvents" -> optimizeEvents = parser.getBoolean(group + property);
|
case "optimizeEvents" -> optimizeEvents = parser.getBoolean(group + property);
|
||||||
case "optimizeSubsystemInitialization" -> optimizeSubsystemInitialization = parser.getBoolean(group + property);
|
case "optimizeSubsystemInitialization" -> optimizeSubsystemInitialization = parser.getBoolean(group + property);
|
||||||
|
|
||||||
|
|
|
@ -28,6 +28,7 @@ import de.staropensource.sosengine.base.events.LogEvent;
|
||||||
import de.staropensource.sosengine.base.internal.placeholders.logger.*;
|
import de.staropensource.sosengine.base.internal.placeholders.logger.*;
|
||||||
import de.staropensource.sosengine.base.internal.types.QueuedLogMessage;
|
import de.staropensource.sosengine.base.internal.types.QueuedLogMessage;
|
||||||
import de.staropensource.sosengine.base.logging.implementation.PlainLoggerImplementation;
|
import de.staropensource.sosengine.base.logging.implementation.PlainLoggerImplementation;
|
||||||
|
import de.staropensource.sosengine.base.types.EngineState;
|
||||||
import de.staropensource.sosengine.base.types.logging.LogLevel;
|
import de.staropensource.sosengine.base.types.logging.LogLevel;
|
||||||
import de.staropensource.sosengine.base.types.logging.LogRule;
|
import de.staropensource.sosengine.base.types.logging.LogRule;
|
||||||
import de.staropensource.sosengine.base.types.logging.LogRuleType;
|
import de.staropensource.sosengine.base.types.logging.LogRuleType;
|
||||||
|
@ -126,7 +127,9 @@ public final class Logger {
|
||||||
Runnable threadLogic = () -> {
|
Runnable threadLogic = () -> {
|
||||||
while (true) { // Run in loop
|
while (true) { // Run in loop
|
||||||
// Stop thread when engine is shutting down
|
// Stop thread when engine is shutting down
|
||||||
if (Engine.getInstance().isShuttingDown())
|
if (Engine.getInstance().getState() == EngineState.SHUTDOWN
|
||||||
|
|| Engine.getInstance().getState() == EngineState.CRASHED
|
||||||
|
|| !EngineConfiguration.getInstance().isOptimizeLogging())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// Process all log messages
|
// Process all log messages
|
||||||
|
|
Loading…
Reference in a new issue