KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > de > webman > util > log4j > WebmanPatternParser


1 package de.webman.util.log4j;
2
3 import org.apache.log4j.*;
4 import org.apache.log4j.helpers.FormattingInfo;
5 import org.apache.log4j.helpers.PatternConverter;
6 import org.apache.log4j.helpers.PatternParser;
7 import org.apache.log4j.spi.LoggingEvent;
8
9 /**
10   Example showing how to extend PatternParser to recognize additional
11   conversion characters. The examples shows that minimum and maximum
12   width and alignment settings apply for "extension" conversion
13   characters just as they do for PatternLayout recognized characters.
14   
15   <p>In this case MyPatternParser recognizes %# and outputs the value
16   of an internal counter which is also incremented at each call.
17
18   See <a HREF=doc-files/MyPatternParser.java><b>source</b></a> code
19    for more details.
20   
21   @see org.apache.log4j.examples.MyPatternLayout
22   @see org.apache.log4j.helpers.PatternParser
23   @see org.apache.log4j.PatternLayout
24
25   * @author Anders Kristensen
26   * @version $Revision: 1.1 $
27   */

28 public class WebmanPatternParser extends PatternParser
29 {
30
31   public WebmanPatternParser(String JavaDoc pattern) {
32     super(pattern);
33   }
34     
35   public void finalizeConverter(char c) {
36     if (c == '#') {
37       addConverter(new UserDirPatternConverter(formattingInfo));
38       currentLiteral.setLength(0);
39     } else {
40       super.finalizeConverter(c);
41     }
42   }
43   
44     private class UserDirPatternConverter extends PatternConverter
45     {
46         UserDirPatternConverter(FormattingInfo formattingInfo) {
47             super(formattingInfo);
48     }
49
50     public String JavaDoc convert(LoggingEvent event)
51     {
52         String JavaDoc[] data = event.getThrowableInformation().getThrowableStrRep() ;
53         StringBuffer JavaDoc back = new StringBuffer JavaDoc();
54         for (int i = 0; i < data.length; i++)
55             back.append(data[i]);
56         return back.toString();
57     }
58   }
59 }
60
Popular Tags