1 package org.apache.velocity.test.misc;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.velocity.runtime.RuntimeServices;
23 import org.apache.velocity.runtime.log.LogChute;
24
25
26
27
28
29
30
31
32 public class TestLogChute implements LogChute
33 {
34 public static final String TEST_LOGGER_LEVEL = "runtime.log.logsystem.test.level";
35
36 private StringBuffer log = new StringBuffer();
37
38 private int logLevel;
39
40 public void init(RuntimeServices rs) throws Exception
41 {
42 String level = rs.getString(TEST_LOGGER_LEVEL, "debug");
43 logLevel = getLevelNumber(level, LogChute.DEBUG_ID);
44 }
45
46 public void log(int level, String message)
47 {
48 if (level >= logLevel)
49 {
50 String levelName;
51 levelName = getLevelName(level);
52 log.append(" [").append(levelName).append("] ");
53 log.append(message);
54 log.append("\n");
55 }
56 }
57
58
59
60
61
62 public String getLog()
63 {
64 return log.toString();
65 }
66
67
68
69
70
71
72 private String getLevelName(int level)
73 {
74 String levelName;
75 if (level == LogChute.DEBUG_ID)
76 {
77 levelName = "debug";
78 }
79 else if (level == LogChute.INFO_ID)
80 {
81 levelName = "info";
82 }
83 else if (level == LogChute.TRACE_ID)
84 {
85 levelName = "trace";
86 }
87 else if (level == LogChute.WARN_ID)
88 {
89 levelName = "warn";
90 }
91 else if (level == LogChute.ERROR_ID)
92 {
93 levelName = "error";
94 }
95 else
96 {
97 levelName = "";
98 }
99
100 return levelName;
101 }
102
103
104
105
106
107
108
109 private int getLevelNumber(String level, int defaultLevel)
110 {
111 if (level == null)
112 {
113 return defaultLevel;
114 }
115 else if (level.equalsIgnoreCase("DEBUG"))
116 {
117 return LogChute.DEBUG_ID;
118 }
119 else if (level.equalsIgnoreCase("ERROR"))
120 {
121 return LogChute.ERROR_ID;
122 }
123 else if (level.equalsIgnoreCase("INFO"))
124 {
125 return LogChute.INFO_ID;
126 }
127 else if (level.equalsIgnoreCase("TRACE"))
128 {
129 return LogChute.TRACE_ID;
130 }
131 else if (level.equalsIgnoreCase("WARN"))
132 {
133 return LogChute.WARN_ID;
134 }
135 else
136 {
137 return defaultLevel;
138 }
139 }
140
141 public void log(int level, String message, Throwable t)
142 {
143 if (level >= logLevel)
144 {
145 String levelName;
146 levelName = getLevelName(level);
147 log.append(" [").append(levelName).append("] ");
148 log.append(message);
149 log.append("\n");
150 log.append(t.toString());
151 log.append("\n");
152 }
153 }
154
155 public boolean isLevelEnabled(int level)
156 {
157 return level >= logLevel;
158 }
159
160 }