
Author: ceki Date: Tue Aug 19 22:04:30 2008 New Revision: 1767 Modified: logback/trunk/logback-classic/src/main/java/org/slf4j/impl/StaticLoggerBinder.java logback/trunk/logback-core/src/main/java/ch/qos/logback/core/util/StatusPrinter.java Log: - in logback-classic, print internal status if errors were encountered Modified: logback/trunk/logback-classic/src/main/java/org/slf4j/impl/StaticLoggerBinder.java ============================================================================== --- logback/trunk/logback-classic/src/main/java/org/slf4j/impl/StaticLoggerBinder.java (original) +++ logback/trunk/logback-classic/src/main/java/org/slf4j/impl/StaticLoggerBinder.java Tue Aug 19 22:04:30 2008 @@ -64,8 +64,9 @@ // TODO test me Util.reportFailure("Failed to auto configure default logger context", je); - StatusPrinter.print(defaultLoggerContext); } + StatusPrinter.printIfErrorsOccured(defaultLoggerContext); + // See if a special context selector is needed String contextSelectorStr = OptionHelper.getSystemProperty( ClassicGlobal.LOGBACK_CONTEXT_SELECTOR, null); Modified: logback/trunk/logback-core/src/main/java/ch/qos/logback/core/util/StatusPrinter.java ============================================================================== --- logback/trunk/logback-core/src/main/java/ch/qos/logback/core/util/StatusPrinter.java (original) +++ logback/trunk/logback-core/src/main/java/ch/qos/logback/core/util/StatusPrinter.java Tue Aug 19 22:04:30 2008 @@ -18,6 +18,7 @@ import ch.qos.logback.core.Context; import ch.qos.logback.core.CoreGlobal; import ch.qos.logback.core.Layout; +import ch.qos.logback.core.status.ErrorStatus; import ch.qos.logback.core.status.Status; import ch.qos.logback.core.status.StatusManager; import ch.qos.logback.core.helpers.ThrowableToStringArray; @@ -33,6 +34,33 @@ ps = printStream; } + /** + * Print the contents of the context statuses, but only if they + * contain errors. + * + * @param context + */ + public static void printIfErrorsOccured(Context context) { + if (context == null) { + throw new IllegalArgumentException("Context argument cannot be null"); + } + + StatusManager sm = context.getStatusManager(); + if (sm == null) { + ps.println("WARN: Context named \"" + context.getName() + + "\" has no status manager"); + } else { + if (sm.getLevel() == ErrorStatus.ERROR) { + print(sm); + } + } + } + + /** + * Print the contents of the context's status data. + * + * @param context + */ public static void print(Context context) { if (context == null) { throw new IllegalArgumentException("Context argument cannot be null");