Skip to content

Commit

Permalink
Logging > Register our TurboFilter only once. During the HiveMQ start…
Browse files Browse the repository at this point in the history
… we load our logback.xml which will reset the current context and call the reset which will register the TurboFilter a second time.
  • Loading branch information
A-Imal committed Nov 9, 2023
1 parent 9b2bcc9 commit ece17be
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 1 deletion.
2 changes: 2 additions & 0 deletions hivemq-edge/src/main/java/com/hivemq/HiveMQEdgeMain.java
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,8 @@ protected void stopGateway() {

//Stop the API Webserver
stopApiServer();

LoggingBootstrap.resetLogging();
}

protected void initializeApiServer(@NotNull final Injector injector) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ public class LoggingBootstrap {
private static final List<Appender<ILoggingEvent>> defaultAppenders = new LinkedList<>();
private static final @NotNull LogLevelModifierTurboFilter logLevelModifierTurboFilter =
new LogLevelModifierTurboFilter();
private static final @NotNull LogbackChangeListener logbackChangeListener = new LogbackChangeListener();

/**
* Prepares the logging. This method must be called before any logging occurs
Expand Down Expand Up @@ -83,12 +84,13 @@ public static void initLogging(final @NotNull File configFolder) {

final LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory();

context.addListener(new LogbackChangeListener());
context.addListener(logbackChangeListener);

final boolean overridden = overrideLogbackXml(configFolder);

if (!overridden) {
reEnableDefaultAppenders();
context.addTurboFilter(logLevelModifierTurboFilter);
}
redirectJULToSLF4J();
logQueuedEntries();
Expand All @@ -100,6 +102,12 @@ public static void initLogging(final @NotNull File configFolder) {
log.trace("Added Netty log level modifier");
}

public static void resetLogging() {
final LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory();
context.getTurboFilterList().remove(logLevelModifierTurboFilter);
context.removeListener(logbackChangeListener);
}

/**
* Re-enables all default appenders that were removed from the root logger for startup
*/
Expand Down

0 comments on commit ece17be

Please sign in to comment.