1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.log4j.customLogger;
19
20
21 import org.apache.log4j.*;
22 import org.apache.log4j.spi.OptionHandler;
23 import org.apache.log4j.spi.LoggerFactory;
24 import org.apache.log4j.xml.XLevel;
25
26
27
28
29
30
31
32 public class XLogger extends Logger implements OptionHandler {
33
34
35
36
37
38 private static String FQCN = XLogger.class.getName() + ".";
39
40
41 private static XFactory factory = new XFactory();
42
43 String suffix = "";
44
45
46
47
48 protected XLogger(String name) {
49 super(name);
50 }
51
52
53
54
55 public
56 void activateOptions() {
57 }
58
59
60
61
62
63 public
64 void debug(String message) {
65 super.log(FQCN, Level.DEBUG, message + " " + suffix, null);
66 }
67
68
69
70
71 public
72 void lethal(String message, Throwable t) {
73 if(repository.isDisabled(XLevel.LETHAL_INT))
74 return;
75 if(XLevel.LETHAL.isGreaterOrEqual(this.getEffectiveLevel()))
76 forcedLog(FQCN, XLevel.LETHAL, message, t);
77 }
78
79
80
81
82 public
83 void lethal(String message) {
84 if(repository.isDisabled(XLevel.LETHAL_INT))
85 return;
86 if(XLevel.LETHAL.isGreaterOrEqual(this.getEffectiveLevel()))
87 forcedLog(FQCN, XLevel.LETHAL, message, null);
88 }
89
90 static
91 public
92 Logger getLogger(String name) {
93 return LogManager.getLogger(name, factory);
94 }
95
96 static
97 public
98 Logger getLogger(Class clazz) {
99 return XLogger.getLogger(clazz.getName());
100 }
101
102
103 public
104 String getSuffix() {
105 return suffix;
106 }
107
108 public
109 void setSuffix(String suffix) {
110 this.suffix = suffix;
111 }
112
113
114
115
116 public
117 void trace(String message, Throwable t) {
118 if(repository.isDisabled(XLevel.TRACE_INT))
119 return;
120 if(XLevel.TRACE.isGreaterOrEqual(this.getEffectiveLevel()))
121 forcedLog(FQCN, XLevel.TRACE, message, t);
122 }
123
124
125
126
127 public
128 void trace(String message) {
129 if(repository.isDisabled(XLevel.TRACE_INT))
130 return;
131 if(XLevel.TRACE.isGreaterOrEqual(this.getEffectiveLevel()))
132 forcedLog(FQCN, XLevel.TRACE, message, null);
133 }
134
135
136
137
138
139 public static class XFactory implements LoggerFactory {
140
141 public XFactory() {
142 }
143
144 public
145 Logger makeNewLoggerInstance(String name) {
146 return new XLogger(name);
147 }
148 }
149 }
150
151