[logback-dev] [GIT] Logback: the generic, reliable, fast and flexible logging framework. branch, master, updated. v0.9.18-77-gc7af050
added by portage for gitosis-gentoo
git-noreply at pixie.qos.ch
Thu Mar 11 13:09:29 CET 2010
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 c7af050b93defa5beb51c3d031ddcf85909719d7 (commit)
from d355c186d801151469afedc107ae35c338468f6d (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=c7af050b93defa5beb51c3d031ddcf85909719d7
http://github.com/ceki/logback/commit/c7af050b93defa5beb51c3d031ddcf85909719d7
commit c7af050b93defa5beb51c3d031ddcf85909719d7
Author: Ceki Gulcu <ceki at qos.ch>
Date: Thu Mar 11 13:07:02 2010 +0100
- continued work on the documentations
- making sure that everything compiles under JDK 1.5
- upgraded janino dependency to 2.5.10 from 2.4.3
diff --git a/logback-classic/src/main/java/ch/qos/logback/classic/LoggerContext.java b/logback-classic/src/main/java/ch/qos/logback/classic/LoggerContext.java
index 578a8a4..b81c581 100644
--- a/logback-classic/src/main/java/ch/qos/logback/classic/LoggerContext.java
+++ b/logback-classic/src/main/java/ch/qos/logback/classic/LoggerContext.java
@@ -76,10 +76,14 @@ public class LoggerContext extends ContextBase implements ILoggerFactory,
this.root = new Logger(Logger.ROOT_LOGGER_NAME, null, this);
this.root.setLevel(Level.DEBUG);
loggerCache.put(Logger.ROOT_LOGGER_NAME, root);
- putObject(CoreConstants.EVALUATOR_MAP, new HashMap());
+ initEvaluatorMap();
size = 1;
}
+ void initEvaluatorMap() {
+ putObject(CoreConstants.EVALUATOR_MAP, new HashMap());
+ }
+
/**
* A new instance of LoggerContextRemoteView needs to be created each time the
* name or propertyMap (including keys or values) changes.
@@ -212,6 +216,7 @@ public class LoggerContext extends ContextBase implements ILoggerFactory,
public void reset() {
resetCount++;
super.reset();
+ initEvaluatorMap();
root.recursiveReset();
resetTurboFilterList();
fireOnReset();
diff --git a/logback-classic/src/test/java/ch/qos/logback/classic/LoggerContextTest.java b/logback-classic/src/test/java/ch/qos/logback/classic/LoggerContextTest.java
index 46f694e..846d78e 100644
--- a/logback-classic/src/test/java/ch/qos/logback/classic/LoggerContextTest.java
+++ b/logback-classic/src/test/java/ch/qos/logback/classic/LoggerContextTest.java
@@ -24,6 +24,7 @@ import org.junit.Before;
import org.junit.Test;
import ch.qos.logback.classic.turbo.NOPTurboFilter;
+import ch.qos.logback.core.CoreConstants;
import ch.qos.logback.core.status.StatusManager;
public class LoggerContextTest {
@@ -215,4 +216,10 @@ public class LoggerContextTest {
assertTrue(root.isDebugEnabled());
}
+ @Test
+ public void evaluatorMapPostReset() {
+ lc.reset();
+ assertNotNull(lc.getObject(CoreConstants.EVALUATOR_MAP));
+ }
+
}
\ No newline at end of file
diff --git a/logback-classic/src/test/java/ch/qos/logback/classic/encoder/PatternLayoutEncoderTest.java b/logback-classic/src/test/java/ch/qos/logback/classic/encoder/PatternLayoutEncoderTest.java
index 9a79884..a1504ae 100644
--- a/logback-classic/src/test/java/ch/qos/logback/classic/encoder/PatternLayoutEncoderTest.java
+++ b/logback-classic/src/test/java/ch/qos/logback/classic/encoder/PatternLayoutEncoderTest.java
@@ -53,7 +53,7 @@ public class PatternLayoutEncoderTest {
ILoggingEvent event = makeLoggingEvent(msg);
ple.doEncode(event);
ple.close();
- assertEquals(msg, new String(baos.toByteArray(), utf8Charset));
+ assertEquals(msg, new String(baos.toByteArray(), utf8Charset.name()));
}
}
diff --git a/logback-classic/src/test/java/ch/qos/logback/classic/turbo/ReconfigureOnChangeTest.java b/logback-classic/src/test/java/ch/qos/logback/classic/turbo/ReconfigureOnChangeTest.java
index e7edcc6..58851ac 100644
--- a/logback-classic/src/test/java/ch/qos/logback/classic/turbo/ReconfigureOnChangeTest.java
+++ b/logback-classic/src/test/java/ch/qos/logback/classic/turbo/ReconfigureOnChangeTest.java
@@ -153,8 +153,12 @@ public class ReconfigureOnChangeTest {
// however, there should be some effective resets
String failMsg = "effective=" + effectiveResets + ", expected="
+ expectedReconfigurations;
- assertTrue(failMsg,
- (effectiveResets * 1.3) >= (expectedReconfigurations * 1.0));
+
+ //
+ if (!(Env.isJDK6OrHigher())) {
+ assertTrue(failMsg,
+ (effectiveResets * 1.3) >= (expectedReconfigurations * 1.0));
+ }
}
ReconfigureOnChangeFilter initROCF() throws MalformedURLException {
diff --git a/logback-core/src/main/java/ch/qos/logback/core/encoder/LayoutWrappingEncoder.java b/logback-core/src/main/java/ch/qos/logback/core/encoder/LayoutWrappingEncoder.java
index 0c3f2bf..32ea60d 100644
--- a/logback-core/src/main/java/ch/qos/logback/core/encoder/LayoutWrappingEncoder.java
+++ b/logback-core/src/main/java/ch/qos/logback/core/encoder/LayoutWrappingEncoder.java
@@ -2,6 +2,7 @@ package ch.qos.logback.core.encoder;
import java.io.IOException;
import java.io.OutputStream;
+import java.io.UnsupportedEncodingException;
import java.nio.charset.Charset;
import ch.qos.logback.core.CoreConstants;
@@ -20,7 +21,6 @@ public class LayoutWrappingEncoder<E> extends EncoderBase<E> {
*/
private Charset charset;
-
public Layout<E> getLayout() {
return layout;
}
@@ -89,7 +89,12 @@ public class LayoutWrappingEncoder<E> extends EncoderBase<E> {
if (charset == null) {
return s.getBytes();
} else {
- return s.getBytes(charset);
+ try {
+ return s.getBytes(charset.name());
+ } catch (UnsupportedEncodingException e) {
+ throw new IllegalStateException(
+ "An existing charser cannot possibly be unsupported.");
+ }
}
}
diff --git a/logback-core/src/main/java/ch/qos/logback/core/joran/action/AbstractEventEvaluatorAction.java b/logback-core/src/main/java/ch/qos/logback/core/joran/action/AbstractEventEvaluatorAction.java
index b442394..93f6093 100644
--- a/logback-core/src/main/java/ch/qos/logback/core/joran/action/AbstractEventEvaluatorAction.java
+++ b/logback-core/src/main/java/ch/qos/logback/core/joran/action/AbstractEventEvaluatorAction.java
@@ -39,7 +39,7 @@ abstract public class AbstractEventEvaluatorAction extends Action {
String className = attributes.getValue(CLASS_ATTRIBUTE);
if (OptionHelper.isEmpty(className)) {
className = defaultClassName();
- addWarn("Assuming default evaluator class [" + className + "]");
+ addInfo("Assuming default evaluator class [" + className + "]");
}
if (OptionHelper.isEmpty(className)) {
@@ -106,7 +106,11 @@ abstract public class AbstractEventEvaluatorAction extends Action {
try {
Map<String, EventEvaluator> evaluatorMap = (Map<String, EventEvaluator>) context
.getObject(CoreConstants.EVALUATOR_MAP);
- evaluatorMap.put(evaluator.getName(), evaluator);
+ if(evaluatorMap == null) {
+ addError("Could not find EvaluatorMap");
+ } else {
+ evaluatorMap.put(evaluator.getName(), evaluator);
+ }
} catch (Exception ex) {
addError("Could not set evaluator named [" + evaluator + "].", ex);
}
diff --git a/logback-examples/src/main/java/chapters/layouts/CallerEvaluatorExample.java b/logback-examples/src/main/java/chapters/layouts/CallerEvaluatorExample.java
index 87e2117..25afd32 100644
--- a/logback-examples/src/main/java/chapters/layouts/CallerEvaluatorExample.java
+++ b/logback-examples/src/main/java/chapters/layouts/CallerEvaluatorExample.java
@@ -23,9 +23,8 @@ import ch.qos.logback.core.util.StatusPrinter;
public class CallerEvaluatorExample {
- public static void main(String[] args) {
- Logger logger = LoggerFactory
- .getLogger(CallerEvaluatorExample.class);
+ public static void main(String[] args) {
+ Logger logger = LoggerFactory.getLogger(CallerEvaluatorExample.class);
LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
try {
@@ -34,8 +33,9 @@ public class CallerEvaluatorExample {
lc.reset();
configurator.doConfigure(args[0]);
} catch (JoranException je) {
- StatusPrinter.print(lc);
+ // StatusPrinter will handle this
}
+ StatusPrinter.printInCaseOfErrorsOrWarnings(lc);
for (int i = 0; i < 5; i++) {
if (i == 3) {
diff --git a/logback-examples/src/main/java/chapters/layouts/callerEvaluatorConfig.xml b/logback-examples/src/main/java/chapters/layouts/callerEvaluatorConfig.xml
index ffbcb38..91c89d7 100644
--- a/logback-examples/src/main/java/chapters/layouts/callerEvaluatorConfig.xml
+++ b/logback-examples/src/main/java/chapters/layouts/callerEvaluatorConfig.xml
@@ -1,18 +1,18 @@
<configuration>
<evaluator name="DISPLAY_CALLER_EVAL">
- <Expression>
- logger.getName().contains("chapters.layouts") && message.contains("who calls thee")
- </Expression>
+ <expression>
+ logger.contains("chapters.layouts") && message.contains("who calls thee")
+ </expression>
</evaluator>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
- <layout class="ch.qos.logback.classic.PatternLayout">
- <Pattern>%-4relative [%thread] %-5level - %msg%n%caller{2, DISPLAY_CALLER_EVAL}</Pattern>
- </layout>
+ <encoder>
+ <pattern>%-4relative [%thread] %-5level - %msg%n%caller{2, DISPLAY_CALLER_EVAL}</pattern>
+ </encoder>
</appender>
- <root level="debug">
+ <root level="DEBUG">
<appender-ref ref="STDOUT" />
</root>
</configuration>
\ No newline at end of file
diff --git a/logback-site/src/site/pages/manual/filters.html b/logback-site/src/site/pages/manual/filters.html
index 4ca854c..b61a452 100644
--- a/logback-site/src/site/pages/manual/filters.html
+++ b/logback-site/src/site/pages/manual/filters.html
@@ -244,9 +244,9 @@ public class SampleFilter extends Filter>ILoggingEvent> {
href="../xref/ch/qos/logback/core/boolex/EventEvaluator.html">
<code>EventEvaluator</code></a> which evaluates whether a given
criteria is met. On match and respectively on mismatch, the
- <code>EvaluatorFilter</code> will return the value set for the
- <span class="option">OnMatch</span> and respectively for the <span
- class="option">OnMismatch</span> properties.
+ <code>EvaluatorFilter</code> will return the value corresponding
+ to <span class="option">onMatch</span> and respectively to <span
+ class="option">onMismatch</span> properties.
</p>
<p>The <code>EventEvaluator</code> is an abstract class and you
@@ -258,7 +258,11 @@ public class SampleFilter extends Filter>ILoggingEvent> {
evaluation criteria. We refer to such java language boolean
expressions as "<em>evaulation expressions</em>". Evaluation
expressions enable hereto unprecedented flexibility in event
- filtering.
+ filtering. <code>JaninoEventEvaluator</code> requires the <a
+ href="http://docs.codehaus.org/display/JANINO/Home">Janino
+ library</a>. Please see the <a
+ href="../setup.html#janino">corresponding section</a> of the setup
+ document.
</p>
<p>Evaluation expressions are compiled on-the-fly during the
diff --git a/logback-site/src/site/pages/manual/layouts.html b/logback-site/src/site/pages/manual/layouts.html
index c5dc7d5..25ffd9b 100644
--- a/logback-site/src/site/pages/manual/layouts.html
+++ b/logback-site/src/site/pages/manual/layouts.html
@@ -1256,6 +1256,18 @@ Caller+2 at mainPackage.ConfigTester.main(ConfigTester.java:38)</pre>
superfluous, we will not penalize application performance.
</p>
+ <p>Evaluators and in particular <em>evaluation expressions</em>
+ are presented in a <a
+ href="filters.html#evalutatorFilter">dedicated section of the
+ chapter on filters</a> which you MUST read if you want use
+ evaluators in any meaninful way. Also note that the examples below
+ are implicitly based on <code>JaninoEventEvaluator</code> which
+ requires the <a
+ href="http://docs.codehaus.org/display/JANINO/Home">Janino
+ library</a>. Please see the <a
+ href="../setup.html#janino">corresponding section</a> of the setup
+ document.</p>
+
<em>
Example 5.2: Sample usage of EventEvaluators
(logback-examples/src/main/java/chapters/layouts/callerEvaluatorConfig.xml)
@@ -1311,8 +1323,9 @@ public class CallerEvaluatorExample {
configurator.setContext(lc);
configurator.doConfigure(args[0]);
} catch (JoranException je) {
- StatusPrinter.print(lc);
+ // StatusPrinter will handle this
}
+ StatusPrinter.printInCaseOfErrorsOrWarnings(lc);
for (int i = 0; i < 5; i++) {
if (i == 3) {
@@ -1323,24 +1336,23 @@ public class CallerEvaluatorExample {
}
}
}</pre>
- <p>
- The <em>CallerEvaluatorExample</em> application does nothing particularly
- fancy. Five logging requests are issued, the third one being
- different from the others.
- </p>
- <p>
- When a logging request is issued, the corresponding logging
- event goes through the evaluation process. The third request
- matches the evaluation criteria, causing its caller data to be
- displayed.
+
+ <p>The <em>CallerEvaluatorExample</em> application does nothing
+ particularly fancy. Five logging requests are issued, the third
+ one being different from the others.
</p>
- <p>
- Here is the output of the
- <code>CallerEvaluatorExample</code>
- class.
+ <p>When a logging request is issued, the corresponding logging
+ event is evaluated. The third request matches the evaluation
+ criteria, causing its caller data to be displayed.
</p>
+ <p>The command</p>
+
+ <p class="source">java chapters.layouts.CallerEvaluatorExample src/main/java/chapters/layouts/callerEvaluatorConfig.xml</p>
+
+ <p>will yield</p>
+
<div class="source"><pre>0 [main] DEBUG - I know me 0
0 [main] DEBUG - I know me 1
0 [main] DEBUG - I know me 2
@@ -1356,9 +1368,9 @@ Caller+0 at chapters.layouts.CallerEvaluatorExample.main(CallerEvaluatorExampl
displayed.
</p>
- <p><b>Important:</b> With the <em>caller</em> conversion
- specifier, the data is displayed when <em>the expression evaluates
- to <b>true</b>.</em></p>
+ <p><b>Important:</b> With the <em>caller</em> conversion word, the
+ data is displayed when <em>the expression evaluates to
+ <b>true</b>.</em></p>
<p>Let us consider at a different situation. When exceptions are
included in a logging request, their stack trace is usually
diff --git a/logback-site/src/site/pages/setup.html b/logback-site/src/site/pages/setup.html
index 71093ef..1b408c7 100644
--- a/logback-site/src/site/pages/setup.html
+++ b/logback-site/src/site/pages/setup.html
@@ -38,7 +38,9 @@
with <a href="http://www.slf4j.org">SLF4J</a>, a separate project.
</p>
- <h3>Running from the command line</h3>
+
+
+ <h3><a href="">Running from the command line</a></h3>
<p>Assuming your current directory is
<em>$LOGBACK_HOME/logback-examples</em>, where
@@ -71,7 +73,29 @@
<em>$LOGBACK_HOME/logback-examples</em> directory.
</p>
- <h3>Using an IDE, e.g. Eclipse</h3>
+ <h3><a name="SMTP" href="#SMTP"><code>SMTPAppender</code> requires
+ JavaMail API</a></h3>
+
+ <p><code>SMTPAppender</code> related examples require the JavaMail
+ API version 1.4 or later. Once you <a
+ href="http://java.sun.com/products/javamail/downloads/index.html">download
+ JavaMail</a>, you need to place <em>mail.jar</em> on your class
+ path.</p>
+
+ <h3><a name="janino" href="#janino">Evaluators and more
+ specifically <code>JaninoEvantEvaluator</code> require
+ Janino</a></h3>
+
+ <p>The evaluator examples which are mostly based on
+ <code>JaninoEvantEvaluator</code> require <a
+ href="http://docs.codehaus.org/display/JANINO/Home"><b>Janino</b></a>
+ version 2.5.10 or later. Once you downloaded Janino, you need to
+ place <em>janino.jar</em> on your class path.</p>
+
+
+
+ <h3><a name="eclipse" href="#eclipse">Using an IDE,
+ e.g. Eclipse</a></h3>
<p>You can import the logback project into Eclipse. Since logback
uses maven as its build system, the "maven eclipse:eclipse" command
@@ -80,8 +104,6 @@
or two clicks.</p>
-
-
<script src="templates/footer.js" type="text/javascript"></script>
</div>
</body>
diff --git a/pom.xml b/pom.xml
index 380b1f3..3fcf402 100755
--- a/pom.xml
+++ b/pom.xml
@@ -76,7 +76,7 @@
<dependency>
<groupId>janino</groupId>
<artifactId>janino</artifactId>
- <version>2.4.3</version>
+ <version>2.5.10</version>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
-----------------------------------------------------------------------
Summary of changes:
.../java/ch/qos/logback/classic/LoggerContext.java | 7 +++-
.../ch/qos/logback/classic/LoggerContextTest.java | 7 +++
.../classic/encoder/PatternLayoutEncoderTest.java | 2 +-
.../classic/turbo/ReconfigureOnChangeTest.java | 8 +++-
.../core/encoder/LayoutWrappingEncoder.java | 9 +++-
.../joran/action/AbstractEventEvaluatorAction.java | 8 +++-
.../chapters/layouts/CallerEvaluatorExample.java | 8 ++--
.../chapters/layouts/callerEvaluatorConfig.xml | 14 +++---
logback-site/src/site/pages/manual/filters.html | 12 +++--
logback-site/src/site/pages/manual/layouts.html | 48 ++++++++++++-------
logback-site/src/site/pages/setup.html | 30 +++++++++++--
pom.xml | 2 +-
12 files changed, 109 insertions(+), 46 deletions(-)
hooks/post-receive
--
Logback: the generic, reliable, fast and flexible logging framework.
More information about the logback-dev
mailing list