[LOGBack-dev] svn commit: r396 - logback/classic/trunk/src/site/xdocTemplates

noreply.ceki at qos.ch noreply.ceki at qos.ch
Sun Aug 6 19:20:26 CEST 2006


Author: ceki
Date: Sun Aug  6 19:20:25 2006
New Revision: 396

Modified:
   logback/classic/trunk/src/site/xdocTemplates/shortIntro.xml
Log:
work in progress

Modified: logback/classic/trunk/src/site/xdocTemplates/shortIntro.xml
==============================================================================
--- logback/classic/trunk/src/site/xdocTemplates/shortIntro.xml	(original)
+++ logback/classic/trunk/src/site/xdocTemplates/shortIntro.xml	Sun Aug  6 19:20:25 2006
@@ -83,11 +83,13 @@
     <h2>First Baby Step</h2>
 
     <p>After you have added the jar fiiles <em>logback-core.jar</em>
-    and <em>logback-classic.jar</em> to your classpath, we can start
+    and <em>logback-classic.jar</em> to your classpath, you can begin
     experimenting with logback.
 		</p>
 
-<div class="source">1  package chapter1;
+<div class="source"><em>Example 1.1: Basic template for logging (examples/HelloWorld1.java)</em>
+
+1  package chapter1;
 2 
 3  import org.slf4j.Logger;
 4  import org.slf4j.LoggerFactory;
@@ -96,85 +98,95 @@
 7
 8  public static void main(String[] args) {
 9
-10    Logger logger = LoggerFactory.getLogger(BabyStep1.class);
+10    Logger logger = LoggerFactory.getLogger("example/BabyStep1");
 11    logger.debug("Hello world.");
 12
 13    }
 14 }
 </div>
 
-    <!-- STOPPED HERE: COGNIZANT? -->
-
 		<p>The <code>HelloWorld</code> class is defined in the
 		<code>chapter1</code> package. It starts by importing the
 		<code>Logger</code> and <code>LoggerFactory</code> classes as
 		defined in the SLF4J API, more specifically in the
-		<code>org.slf4j</code> package.  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.
+		<code>org.slf4j</code> package. 
 		</p>
    
 
-		<p>Then a static variable gets a Logger that is initialised with
-		the <code>HelloWorld</code> class.  The main method then invokes the
-		debug method of the received Logger.  It gives the method a simple
-		String with the message to log.  Put differently, the main method
-		contains a logging statement of level debug containing the message
-		“Hello world”.
+		<p>On line 10, 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 "example/BabyStep1". The main method
+		proceeds to call its <code>debug</code> method with the argument
+		"Hello world." We say that the main method contains a logging
+		statement of level debug containing the message “Hello world”.
 		</p>
 
-		<p>
-			You can compile and run this class as follows:
+    <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>
+
+
+		<p><b>ceki: compile?</b>
+			You can compile and run this class with the command:
 		</p>
 
-		<div class="source">java ch.qos.logback.classic.examples.HelloWorld1</div>
+		<div class="source">java chapter1.HelloWorld1</div>
 		
-    <p>This will not produce any logging output. What happened?
-    Well, a powerful tool in logback is the Status and associated
-    classes.  It keeps track of any events of importance that happen
-    during the use of logback. A simple statement can help us see why
-    nothing was logged:
-		</p>
+    <p>Suprisingly enough, launching the <code>HelloWorld1</code>
+    application will not produce <em>any</em> output. Logback does not
+    posses a default configuration. Without a valid configuration,
+    logback will be as silent as a mummy.
+    </p>
+
+    <p>Logback can report information about its internal state using a
+    built-in status system. Important events occuring during logback's
+    lifetime can be accessed through a <code>StatusManager</code>. For
+    the time being, let us tell logback to print its internal
+    state. This is accomplished by a static method in the
+    <code>LoggerStatusPrinter</code> class.
+    </p>
 
-<div class="source">package ch.qos.logback.classic.examples;
+<div class="source">package chapter1;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-
-import ch.qos.logback.classic.util.LoggerStatusPrinter;
+<b>import ch.qos.logback.classic.util.LoggerStatusPrinter;</b>
 
 public class HelloWorld2 {
 
-  final static Logger logger = LoggerFactory.getLogger(HelloWorld1.class);
-
   public static void main(String[] args) {
-
+    Logger logger = LoggerFactory.getLogger(HelloWorld2.class);
     logger.debug("Hello world.");
-    LoggerStatusPrinter.printStatusInDefaultContext();
-
+    <b>LoggerStatusPrinter.printStatusInDefaultContext();</b>
   }
 }
 </div>
-		<p>
-			The LoggerStatusPrinter will print whatever Statuses were sent to the 
-			StatusManager. Running again the class with the new statement will 
-			output to the console the next lines:
-		</p>
-<div class="source">
-ERROR in Logger[ch.qos.logback.classic.examples.HelloWorld2] - No appenders present \\
-in the hierarchy [default] for logger [ch.qos.logback.classic.examples.HelloWorld2].
-</div>
-		<p>
-			We now know why nothing was logged: no Appenders are configured. 
-			An Appender is a class that can be seen as an output destination. 
-			Appenders exist for many different destinations including the console, 
-			files, and many more. Users can also easily create their own Appenders 
-			for any specific situation.
+
+
+   <p>Running the <code>HelloWorld2</code> application will produce
+   the following output:</p>
+
+<div class="source">ERROR in Logger[chapter1.HelloWorld2] - No appenders present in context [default] for logger [chapter1.HelloWorld2].</div>
+
+
+  <!-- =========  CEKI: STOPPED HERE =================== -->
+
+		<p>Logback is complaining that no appenders were configured for
+		the default context.
+
+
+    An Appender is a class that can
+		be seen as an output destination.  Appenders exist for many
+		different destinations including the console, files, and many
+		more. Users can also easily create their own Appenders for any
+		specific situation.
 		</p>
+
 		<p>
 			Configuring logback classic can be done a different ways. 
 			The simplest but less flexible way is by calling the <code>BasicConfigurator</code> 



More information about the logback-dev mailing list