[Bug 290] New: StaticLoggerBinder shold not swallow Errors

http://bugzilla.slf4j.org/show_bug.cgi?id=290 Summary: StaticLoggerBinder shold not swallow Errors Product: SLF4J Version: 1.7.x Platform: PC OS/Version: Linux Status: NEW Severity: blocker Priority: P1 Component: Core API AssignedTo: slf4j-dev@qos.ch ReportedBy: david@davidkarlsen.com I'm creating a custom Logback StatusListener which raises java.lang.Errors in case of severe logging issues (e.g. IOErrors) so that I can disable normal operation of my application in these situations. This works fine when I get an IOError after the application has started to run and loggers are bound (for instance when a filesystem becomes full). HOWEVER - it would not work for a non-writable file as slf4j/logback initializes, due to StaticLoggerBinders init() behaviour, which catches Throwable and simply logs this: void init() { try { try { new ContextInitializer(defaultLoggerContext).autoConfig(); } catch (JoranException je) { Util.report("Failed to auto configure default logger context", je); } StatusPrinter.printInCaseOfErrorsOrWarnings(defaultLoggerContext); contextSelectorBinder.init(defaultLoggerContext, KEY); initialized = true; } catch (Throwable t) { // we should never get here Util.report("Failed to instantiate [" + LoggerContext.class.getName() + "]", t); } } I think this should be changed to a catch ( Exception ) as it's not good behaviour to catch Errors (and certainly not when not rethrowing them). Alternatively keep the catch block as today, but if t instanceof Error rethrow the Error. using slf4j-api 1.7.2 and logback 1.0.9 -- Configure bugmail: http://bugzilla.slf4j.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug.
participants (1)
-
bugzilla-daemon@qos.ch