
Author: ceki Date: Sat Aug 9 21:50:32 2008 New Revision: 1749 Added: logback/trunk/logback-classic/src/test/resources/BOO_logback-test.xml logback/trunk/logback-classic/src/test/resources/README.txt Removed: logback/trunk/logback-classic/src/test/resources/logback-test.xml Modified: logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/util/LoggerStatusPrinter.java logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/util/InitializationTest.java logback/trunk/logback-examples/src/main/java/chapter1/HelloWorld2.java logback/trunk/logback-site/src/site/pages/index.html logback/trunk/logback-site/src/site/pages/mailinglist.html logback/trunk/logback-site/src/site/pages/manual/introduction.html logback/trunk/logback-site/src/site/pages/setup.html logback/trunk/logback-site/src/site/pages/team.html Log: - logback-examples should work under Eclipse - simplification of LoggerStatusPrinter - improvements to documentation Modified: logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/util/LoggerStatusPrinter.java ============================================================================== --- logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/util/LoggerStatusPrinter.java (original) +++ logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/util/LoggerStatusPrinter.java Sat Aug 9 21:50:32 2008 @@ -12,18 +12,14 @@ import org.slf4j.LoggerFactory; -import ch.qos.logback.classic.Logger; import ch.qos.logback.classic.LoggerContext; -import ch.qos.logback.core.status.StatusManager; import ch.qos.logback.core.util.StatusPrinter; public class LoggerStatusPrinter { public static void printStatusInDefaultContext() { - Logger logger = (Logger) LoggerFactory.getLogger(LoggerStatusPrinter.class); - LoggerContext lc = logger.getLoggerContext(); - StatusManager sm = lc.getStatusManager(); - StatusPrinter.print(sm); + LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory(); + StatusPrinter.print(lc); } } Modified: logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/util/InitializationTest.java ============================================================================== --- logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/util/InitializationTest.java (original) +++ logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/util/InitializationTest.java Sat Aug 9 21:50:32 2008 @@ -10,6 +10,7 @@ import org.junit.After; import org.junit.Before; +import org.junit.Ignore; import org.junit.Test; import org.slf4j.LoggerFactory; @@ -40,6 +41,10 @@ } @Test + @Ignore + // this test works only if logback-test.xml or logback.xml files are on the classpath. + // However, this is something we try to avoid in order to simplify the life + // of users trying to follows the manual and logback-examples from an IDE public void testAutoconfig() { Appender appender = root.getAppender("STDOUT"); assertNotNull(appender); @@ -47,6 +52,10 @@ } @Test + @Ignore + // this test works only if logback-test.xml or logback.xml files are on the classpath. + // However, this is something we try to avoid in order to simplify the life + // of users trying to follows the manual and logback-examples from an IDE public void testReset() throws JoranException { { ContextInitializer.autoConfig(lc); Added: logback/trunk/logback-classic/src/test/resources/BOO_logback-test.xml ============================================================================== --- (empty file) +++ logback/trunk/logback-classic/src/test/resources/BOO_logback-test.xml Sat Aug 9 21:50:32 2008 @@ -0,0 +1,15 @@ +<configuration> + + <appender name="STDOUT" + class="ch.qos.logback.core.ConsoleAppender"> + <layout class="ch.qos.logback.classic.PatternLayout"> + <param name="Pattern" + value="TEST %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n" /> + </layout> + </appender> + + <root> + <level value="ERROR" /> + <appender-ref ref="STDOUT" /> + </root> +</configuration> \ No newline at end of file Added: logback/trunk/logback-classic/src/test/resources/README.txt ============================================================================== --- (empty file) +++ logback/trunk/logback-classic/src/test/resources/README.txt Sat Aug 9 21:50:32 2008 @@ -0,0 +1,5 @@ + +Few test cases InitializationTest requite the presence of logback.xml or logback-test.xml +to be present in the classpath. However, this conflict with the logback-examples module. +In particular, when users attempt to follow the manual by importing the project in an IDE +such as Eclipse. \ No newline at end of file Modified: logback/trunk/logback-examples/src/main/java/chapter1/HelloWorld2.java ============================================================================== --- logback/trunk/logback-examples/src/main/java/chapter1/HelloWorld2.java (original) +++ logback/trunk/logback-examples/src/main/java/chapter1/HelloWorld2.java Sat Aug 9 21:50:32 2008 @@ -11,14 +11,17 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; - -import ch.qos.logback.classic.util.LoggerStatusPrinter; +import ch.qos.logback.classic.LoggerContext; +import ch.qos.logback.core.util.StatusPrinter; public class HelloWorld2 { public static void main(String[] args) { Logger logger = LoggerFactory.getLogger("chapter1.HelloWorld2"); logger.debug("Hello world."); - LoggerStatusPrinter.printStatusInDefaultContext(); + + // print internal state + LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory(); + StatusPrinter.print(lc); } } Modified: logback/trunk/logback-site/src/site/pages/index.html ============================================================================== --- logback/trunk/logback-site/src/site/pages/index.html (original) +++ logback/trunk/logback-site/src/site/pages/index.html Sat Aug 9 21:50:32 2008 @@ -39,7 +39,8 @@ significantly improved version of log4j. Moreover, logback-classic natively implements the <a href="http://www.slf4j.org">SLF4J API</a> so that you can readily switch back and forth between - logback and other logging systems such as log4j or JDK14 Logging. + logback and other logging systems such as log4j or + java.util.logging (JUL). </p> <p>The logback-access module integrates with Servlet containers, @@ -48,7 +49,14 @@ on top of logback-core. </p> - + <h3>Sister projects</h3> + + <p>The <a href="http://audit.qos.ch">logback-audit</a> project is + designed for processing logging events having long-term business + significance. Logback-audit is commercial software based on + logback-core. + </p> + <script src="templates/footer.js"></script> </div> </body> Modified: logback/trunk/logback-site/src/site/pages/mailinglist.html ============================================================================== --- logback/trunk/logback-site/src/site/pages/mailinglist.html (original) +++ logback/trunk/logback-site/src/site/pages/mailinglist.html Sat Aug 9 21:50:32 2008 @@ -162,7 +162,7 @@ <h2>On IRC</h2> <p>We can also be reached by IRC at <span - class="big"><code>irc.freenode.net#logback</code></span>. </p> + class="big"><code>irc.freenode.net#qos.ch</code></span>. </p> <p> </p> Modified: logback/trunk/logback-site/src/site/pages/manual/introduction.html ============================================================================== --- logback/trunk/logback-site/src/site/pages/manual/introduction.html (original) +++ logback/trunk/logback-site/src/site/pages/manual/introduction.html Sat Aug 9 21:50:32 2008 @@ -98,24 +98,21 @@ <p> - On the first line of the main() method, the variable named <code>logger</code> - is assigned a <code>Logger</code> - instance retreived by invoking the static method <code>getLogger</code> - in the <code>LoggerFactory</code> class. - This logger is named "chapter1.HelloWorld1". The main method proceeds to call the - <code>debug</code> method of this logger passing "Hello World" as an argument. - We say that the main - method contains a logging statement of level debug with the message "Hello world". + On the first line of the main() method, the variable named + <code>logger</code> is assigned a <code>Logger</code> instance + retrieved by invoking the static <code>getLogger</code> method + from the <code>LoggerFactory</code> class. This logger is named + "chapter1.HelloWorld1". The main method proceeds to call the + <code>debug</code> method of this logger passing "Hello World" + as an argument. We say that the main method contains a logging + statement of level DEBUG with the message "Hello world". </p> - <p> - You will note that the above example does not reference any - logback classes. In most cases, as far as logging is - concerned, your classes will need to import only SLF4J - classes. In principle, you will have to import logback - classes only for configuring logback. Thus, the vast - majority of your classes will only be cognizant of SLF4J API - and oblivious to the existence of logback. + <p>Note that the above example does not reference any logback + classes. In most cases, as far as logging is concerned, your + classes will only need to import SLF4J classes. Thus, the vast + majority, if not all, of your classes will be cognizant of SLF4J + API and oblivious to the existence of logback. </p> @@ -124,12 +121,11 @@ </p> <div class="source"><pre>java chapter1.HelloWorld1</pre></div> - <p> - Launching the <code>HelloWorld1</code> - application will output a single line on the console. By virtue of - to logback's default configuration policy, when no default file - is found to configure logback explicitely, logback will add a - <code>ConsoleAppender</code> to the root logger. + <p>Launching the <code>HelloWorld1</code> application will output + a single line on the console. By virtue of to logback's default + configuration policy, when no default configuration file is found, + logback will add a <code>ConsoleAppender</code> to the root + logger. </p> <div class="source"><pre>20:49:07.962 [main] DEBUG chapter1.HelloWorld1 - Hello world.</pre></div> @@ -149,14 +145,18 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -<b>import ch.qos.logback.classic.util.LoggerStatusPrinter;</b> +<b>import ch.qos.logback.classic.LoggerContext; +import ch.qos.logback.core.util.StatusPrinter;</b> public class HelloWorld2 { public static void main(String[] args) { Logger logger = LoggerFactory.getLogger("chapter1.HelloWorld2"); logger.debug("Hello world."); - <b>LoggerStatusPrinter.printStatusInDefaultContext();</b> + + // print internal state + <b>LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory(); + StatusPrinter.print(lc);</b> } }</pre></div> Modified: logback/trunk/logback-site/src/site/pages/setup.html ============================================================================== --- logback/trunk/logback-site/src/site/pages/setup.html (original) +++ logback/trunk/logback-site/src/site/pages/setup.html Sat Aug 9 21:50:32 2008 @@ -20,59 +20,61 @@ <div id="content"> -<h2>Classpath Setup</h2> + <h2>Classpath Setup</h2> -<p> -In order to run the examples provided in the documentation, -you need to add the following jars to your class path: -</p> - -<ul> - <p>logback-core-${version}.jar</p> - <p>logback-classic-${version}.jar</p> - <p>logback-examples-${version}.jar</p> - <p>slf4j-api-${slf4j.version}.jar</p> -</ul> - -<h3>Example</h3> - -<p> -Assuming your current directory is -<em>$LOGBACK_HOME/logback-examples</em>, where <em>$LOGBACK_HOME</em> stands -for the directory where you installed logback, you can launch the first -sample application, <em>chapter1.HelloWord1</em> with the following command: -</p> + <p>In order to run the examples provided in the documentation, you + need to add the following jars to your class path: + </p> + + <ul> + <li>logback-core-${version}.jar</li> + <li>logback-classic-${version}.jar</li> + <li>logback-examples-${version}.jar</li> + <li>slf4j-api-${slf4j.version}.jar</li> + </ul> + + <h3>Running from the command line</h3> + + <p>Assuming your current directory is + <em>$LOGBACK_HOME/logback-examples</em>, where + <em>$LOGBACK_HOME</em> stands for the directory where you installed + logback, you can launch the first sample application, + <em>chapter1.HelloWord1</em> with the following command: + </p> <div class="source"><pre>java -cp lib/slf4j-api-${slf4j.version}.jar;../logback-core-${version}.jar;\ ../logback-classic-${version}.jar;logback-examples-${version}.jar\ chapter1.HelloWorld1</pre></div> -<p> -It is more convenient to set the CLASSPATH environment variable -once and for all before running the examples. -</p> -<p>The <em>setClasspath.cmd</em> script located in the $LOGBACK_HOME/logback-examples -folder will configure the class path for the MS Windows platform. For Unix, you can -use <em>setClasspath.sh</em>. -</p> - -<p>Please edit the script in order to adapt the <em>LB_HOME</em> variable -to match your local environment.</p> - -<p> -Please be aware that many examples will launch java classes along -with configuration files. To access these files by using -the same commands as written in the documentation, you will need to -issue the commands from within the <em>$LOGBACK_HOME/logback-examples</em> -directory. -</p> + <p>It is more convenient to set the CLASSPATH environment variable + once and for all before running the examples. + </p> + + <p>The <em>setClasspath.cmd</em> script located in the + $LOGBACK_HOME/logback-examples folder will configure the class path + for the MS Windows platform. For Unix, you can use + <em>setClasspath.sh</em>. + </p> + + <p>Please edit the script in order to adapt the <em>LB_HOME</em> variable + to match your local environment.</p> + + <p>Please be aware that many examples will launch java classes along + with configuration files. To access these files by using the same + commands as written in the documentation, you will need to issue the + commands from within the <em>$LOGBACK_HOME/logback-examples</em> + directory. + </p> + + <h3>Using an IDE, e.g. Eclipse</h3> + + <p>You can import the logback project into Eclipse. Since logback + uses maven as its build system, the "maven eclipse:eclipse" command + will create the <em>.classpath</em> and <em>.project</em> files for + Eclipse. You can then import the logback project into Eclipse in one + or two clicks.</p> - - - - - Modified: logback/trunk/logback-site/src/site/pages/team.html ============================================================================== --- logback/trunk/logback-site/src/site/pages/team.html (original) +++ logback/trunk/logback-site/src/site/pages/team.html Sat Aug 9 21:50:32 2008 @@ -48,14 +48,6 @@ first sight. His interests range from cryptography, system monitoring and testing to application interoperability. </p> - - <p>One of the core lessons he has learned over the years is - that unit tests lie at the heart of maintainable - software. Adding tests at the end of development cycle - yields poor results. Tests must be part of development right - from the beginning. - </p> - </td> </tr> <tr class="a">