[GIT] Logback: the generic, reliable, fast and flexible logging framework. branch master updated. v_1.0.0-73-ge85c622

This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Logback: the generic, reliable, fast and flexible logging framework.". The branch, master has been updated via e85c6226ec0d00007c64508157d6054e07871406 (commit) from 1169a18f6aac21cbbc1f2e60dfb7b75b2a2399a0 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://git.qos.ch/gitweb/?p=logback.git;a=commit;h=e85c6226ec0d00007c6450815... http://github.com/ceki/logback/commit/e85c6226ec0d00007c64508157d6054e078714... commit e85c6226ec0d00007c64508157d6054e07871406 Author: Ceki Gulcu <ceki@qos.ch> Date: Tue Mar 6 23:02:16 2012 +0100 Setting the debug attribute to true in the <configuration> element now registers a OnConsoleStatusListener with the StatusManager. diff --git a/logback-access/src/main/java/ch/qos/logback/access/joran/action/ConfigurationAction.java b/logback-access/src/main/java/ch/qos/logback/access/joran/action/ConfigurationAction.java index 034494f..d58c8bf 100644 --- a/logback-access/src/main/java/ch/qos/logback/access/joran/action/ConfigurationAction.java +++ b/logback-access/src/main/java/ch/qos/logback/access/joran/action/ConfigurationAction.java @@ -13,6 +13,7 @@ */ package ch.qos.logback.access.joran.action; +import ch.qos.logback.core.status.OnConsoleStatusListener; import org.xml.sax.Attributes; import ch.qos.logback.core.joran.action.Action; @@ -24,7 +25,6 @@ import ch.qos.logback.core.util.StatusPrinter; public class ConfigurationAction extends Action { static final String INTERNAL_DEBUG_ATTR = "debug"; - boolean debugMode = false; public void begin(InterpretationContext ec, String name, Attributes attributes) { String debugAttrib = attributes.getValue(INTERNAL_DEBUG_ATTR); @@ -33,8 +33,8 @@ public class ConfigurationAction extends Action { (debugAttrib == null) || debugAttrib.equals("") || debugAttrib.equals("false") || debugAttrib.equals("null")) { addInfo("Ignoring " + INTERNAL_DEBUG_ATTR + " attribute."); - } else { - debugMode = true; + } else { + OnConsoleStatusListener.addNewInstanceToContext(context); } new ContextUtil(context).addHostNameAsProperty(); @@ -45,10 +45,6 @@ public class ConfigurationAction extends Action { public void end(InterpretationContext ec, String name) { addInfo("End of configuration."); - if (debugMode) { - StatusPrinter.print(context); - } - ec.popObject(); } } diff --git a/logback-classic/src/main/java/ch/qos/logback/classic/joran/action/ConfigurationAction.java b/logback-classic/src/main/java/ch/qos/logback/classic/joran/action/ConfigurationAction.java index 6369585..42abe92 100644 --- a/logback-classic/src/main/java/ch/qos/logback/classic/joran/action/ConfigurationAction.java +++ b/logback-classic/src/main/java/ch/qos/logback/classic/joran/action/ConfigurationAction.java @@ -13,6 +13,7 @@ */ package ch.qos.logback.classic.joran.action; +import ch.qos.logback.core.status.OnConsoleStatusListener; import org.xml.sax.Attributes; import ch.qos.logback.classic.LoggerContext; @@ -29,7 +30,6 @@ public class ConfigurationAction extends Action { static final String SCAN_ATTR = "scan"; static final String SCAN_PERIOD_ATTR = "scanPeriod"; - boolean debugMode = false; long threshold = 0; public void begin(InterpretationContext ec, String name, Attributes attributes) { @@ -40,7 +40,7 @@ public class ConfigurationAction extends Action { || debugAttrib.equalsIgnoreCase("null")) { addInfo(INTERNAL_DEBUG_ATTR + " attribute not set"); } else { - debugMode = true; + OnConsoleStatusListener.addNewInstanceToContext(context); } processScanAttrib(attributes); @@ -77,11 +77,7 @@ public class ConfigurationAction extends Action { } public void end(InterpretationContext ec, String name) { - if (debugMode) { - addInfo("End of configuration."); - LoggerContext loggerContext = (LoggerContext) context; - StatusPrinter.print(loggerContext, threshold); - } + addInfo("End of configuration."); ec.popObject(); } } diff --git a/logback-core/src/main/java/ch/qos/logback/core/joran/action/StatusListenerAction.java b/logback-core/src/main/java/ch/qos/logback/core/joran/action/StatusListenerAction.java index cbe54f2..af85522 100644 --- a/logback-core/src/main/java/ch/qos/logback/core/joran/action/StatusListenerAction.java +++ b/logback-core/src/main/java/ch/qos/logback/core/joran/action/StatusListenerAction.java @@ -33,9 +33,8 @@ public class StatusListenerAction extends Action { inError = false; String className = attributes.getValue(CLASS_ATTRIBUTE); if (OptionHelper.isEmpty(className)) { - addError( - "Missing class name for statusListener. Near [" - + name + "] line " + getLineNumber(ec)); + addError("Missing class name for statusListener. Near [" + + name + "] line " + getLineNumber(ec)); inError = true; return; } @@ -43,11 +42,11 @@ public class StatusListenerAction extends Action { try { statusListener = (StatusListener) OptionHelper.instantiateByClassName( className, StatusListener.class, context); - addInfo("Adding status listener of type ["+className+"]"); ec.getContext().getStatusManager().add(statusListener); if (statusListener instanceof ContextAware) { ((ContextAware) statusListener).setContext(context); } + addInfo("Added status listener of type [" + className + "]"); ec.pushObject(statusListener); } catch (Exception e) { inError = true; @@ -70,8 +69,7 @@ public class StatusListenerAction extends Action { } Object o = ec.peekObject(); if (o != statusListener) { - addWarn( - "The object at the of the stack is not the statusListener pushed earlier."); + addWarn("The object at the of the stack is not the statusListener pushed earlier."); } else { ec.popObject(); } diff --git a/logback-core/src/main/java/ch/qos/logback/core/status/OnConsoleStatusListener.java b/logback-core/src/main/java/ch/qos/logback/core/status/OnConsoleStatusListener.java index daea4be..9658fa1 100644 --- a/logback-core/src/main/java/ch/qos/logback/core/status/OnConsoleStatusListener.java +++ b/logback-core/src/main/java/ch/qos/logback/core/status/OnConsoleStatusListener.java @@ -13,6 +13,8 @@ */ package ch.qos.logback.core.status; +import ch.qos.logback.core.Context; +import ch.qos.logback.core.spi.ContextAware; import ch.qos.logback.core.spi.ContextAwareBase; import ch.qos.logback.core.spi.LifeCycle; import ch.qos.logback.core.util.StatusPrinter; @@ -80,4 +82,16 @@ public class OnConsoleStatusListener extends ContextAwareBase implements StatusL public boolean isStarted() { return isStarted; } + + /** + * This utility method adds a new OnConsoleStatusListener to the context passed as parameter. + * + * @param context + * @since 1.0.1 + */ + static public void addNewInstanceToContext(Context context) { + OnConsoleStatusListener onConsoleStatusListener = new OnConsoleStatusListener(); + onConsoleStatusListener.setContext(context); + context.getStatusManager().add(onConsoleStatusListener); + } } diff --git a/logback-site/src/site/pages/manual/configuration.html b/logback-site/src/site/pages/manual/configuration.html index 0812333..df1679a 100644 --- a/logback-site/src/site/pages/manual/configuration.html +++ b/logback-site/src/site/pages/manual/configuration.html @@ -368,21 +368,24 @@ public class Foo { </ol> <p>If any of these two conditions is not fulfilled, Joran cannot - interpret the <code>debug</code> attribute since the configuration file - cannot be read. If the configuration file is found but is - malformed, then logback will detect the error condition and - automatically print its internal status on the console. However, if - the configuration file cannot be found, logback will not automatically - print its status data, since this is not necessarily an error condition. Programmatically invoking + interpret the <span class="attr">debug</span> attribute since the + configuration file cannot be read. If the configuration file is + found but is malformed, then logback will detect the error + condition and automatically print its internal status on the + console. However, if the configuration file cannot be found, + logback will not automatically print its status data, since this is + not necessarily an error condition. Programmatically invoking <code>StatusPrinter.print()</code> as in the <em>MyApp2</em> application above ensures that status information is always printed. </p> - <p>It is strongly recommended to register a status listener, - e.g. <code>OnConsoleStatusListener</code>, so that problems - occurring during the lifetime of your application, well after - logback is initialized, can be reported. See the section on <a + <p>As of version 1.0.1, setting the <span class="attr">debug</span> + attribute is equivalent to registering an + <code>OnConsoleStatusListener</code> with the + <code>StatusManager</code>. Thus, problems occurring during the + lifetime of your application, well after logback is initialized, + can be reported. Refer to the section on <a href="#statusListener">status listeners</a> further below.</p> <h3><a name="configFileProperty" diff --git a/logback-site/src/site/pages/news.html b/logback-site/src/site/pages/news.html index 1dadd0d..851bf66 100644 --- a/logback-site/src/site/pages/news.html +++ b/logback-site/src/site/pages/news.html @@ -29,7 +29,16 @@ <hr width="80%" align="center" /> - <h3>xx of December, 2011 - Release of version 1.0.1</h3> + <h3>xx of March, 2012 - Release of version 1.0.1</h3> + + <p>Setting the debug attribute to true in the + <code><configuration></code> element now registers a + <code>OnConsoleStatusListener</code> with the + <code>StatusManager</code>. Thus, problems occurring during the + lifetime of your application, well after logback is initialized, + can be reported. This results in a behavior closer to what users + expect. + </p> <p>Added new property the <span class="option">cleanHistoryOnStart</span> to <a @@ -60,9 +69,9 @@ as reported by Chris Cheshire. </p> - <p>SiftingAppender will consider stale and consequently remove - nested appenders which are closed or improperly started. This - caters for the use case described in <a + <p><code>SiftingAppender</code> will consider stale and + consequently remove nested appenders which are closed or + improperly started. This caters for the use case described in <a href="http://jira.qos.ch/browse/LBCLASSIC-316">LBCLASSIC-316</a> by Guus Bloemsma.</p> ----------------------------------------------------------------------- Summary of changes: .../access/joran/action/ConfigurationAction.java | 10 ++------ .../classic/joran/action/ConfigurationAction.java | 10 ++------ .../core/joran/action/StatusListenerAction.java | 10 +++----- .../core/status/OnConsoleStatusListener.java | 14 ++++++++++++ .../src/site/pages/manual/configuration.html | 23 +++++++++++-------- logback-site/src/site/pages/news.html | 17 +++++++++++--- 6 files changed, 50 insertions(+), 34 deletions(-) hooks/post-receive -- Logback: the generic, reliable, fast and flexible logging framework.
participants (1)
-
git-noreply@pixie.qos.ch