76
76
* @author Dave Syer
77
77
* @author Andy Wilkinson
78
78
* @author Ben Hale
79
+ * @author Mark Chesney
79
80
* @since 1.0.0
80
81
*/
81
82
public class LogbackLoggingSystem extends AbstractLoggingSystem implements BeanFactoryInitializationAotProcessor {
@@ -210,7 +211,7 @@ private boolean initializeFromAotGeneratedArtifactsIfPossible(LoggingInitializat
210
211
applySystemProperties (initializationContext .getEnvironment (), logFile );
211
212
}
212
213
LoggerContext loggerContext = getLoggerContext ();
213
- stopAndReset (loggerContext );
214
+ stopOrReset (loggerContext );
214
215
SpringBootJoranConfigurator configurator = new SpringBootJoranConfigurator (initializationContext );
215
216
configurator .setContext (loggerContext );
216
217
boolean configuredUsingAotGeneratedArtifacts = configurator .configureUsingAotGeneratedArtifacts ();
@@ -223,7 +224,7 @@ private boolean initializeFromAotGeneratedArtifactsIfPossible(LoggingInitializat
223
224
@ Override
224
225
protected void loadDefaults (LoggingInitializationContext initializationContext , LogFile logFile ) {
225
226
LoggerContext context = getLoggerContext ();
226
- stopAndReset (context );
227
+ stopOrReset (context );
227
228
withLoggingSuppressed (() -> {
228
229
boolean debug = Boolean .getBoolean ("logback.debug" );
229
230
if (debug ) {
@@ -245,7 +246,7 @@ protected void loadDefaults(LoggingInitializationContext initializationContext,
245
246
protected void loadConfiguration (LoggingInitializationContext initializationContext , String location ,
246
247
LogFile logFile ) {
247
248
LoggerContext loggerContext = getLoggerContext ();
248
- stopAndReset (loggerContext );
249
+ stopOrReset (loggerContext );
249
250
withLoggingSuppressed (() -> {
250
251
if (initializationContext != null ) {
251
252
applySystemProperties (initializationContext .getEnvironment (), logFile );
@@ -298,9 +299,13 @@ private void configureByResourceUrl(LoggingInitializationContext initializationC
298
299
}
299
300
}
300
301
301
- private void stopAndReset (LoggerContext loggerContext ) {
302
- loggerContext .stop ();
303
- loggerContext .reset ();
302
+ private void stopOrReset (LoggerContext loggerContext ) {
303
+ if (loggerContext .isStarted ()) {
304
+ loggerContext .stop ();
305
+ }
306
+ else {
307
+ loggerContext .reset ();
308
+ }
304
309
if (isBridgeHandlerInstalled ()) {
305
310
addLevelChangePropagator (loggerContext );
306
311
}
0 commit comments