1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.log4j;
19 import org.apache.log4j.helpers.PatternParser;
20
21 /***
22
23 Example showing how to extend PatternLayout to recognize additional
24 conversion characters.
25
26 <p>In this case MyPatternLayout recognizes %# conversion pattern. It
27 outputs the value of an internal counter which is also incremented
28 at each call.
29
30 <p>See <a href=doc-files/MyPatternLayout.java><b>source</b></a> code
31 for more details.
32
33 @see MyPatternParser
34 @see org.apache.log4j.PatternLayout
35 @author Anders Kristensen
36 */
37 public class MyPatternLayout extends PatternLayout {
38 public
39 MyPatternLayout() {
40 this(DEFAULT_CONVERSION_PATTERN);
41 }
42
43 public
44 MyPatternLayout(String pattern) {
45 super(pattern);
46 }
47
48 public
49 PatternParser createPatternParser(String pattern) {
50 return new MyPatternParser(
51 pattern == null ? DEFAULT_CONVERSION_PATTERN : pattern);
52 }
53
54 public
55 static void main(String[] args) {
56 Layout layout = new MyPatternLayout("[counter=%.10#] - %m%n");
57 Logger logger = Logger.getLogger("some.cat");
58 logger.addAppender(new ConsoleAppender(layout, ConsoleAppender.SYSTEM_OUT));
59 logger.debug("Hello, log");
60 logger.info("Hello again...");
61 }
62 }