1 package org.apache.velocity.tools.view;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.io.StringWriter;
23 import java.io.PrintWriter;
24 import javax.servlet.ServletContext;
25 import org.apache.velocity.runtime.log.LogChute;
26 import org.apache.velocity.runtime.RuntimeServices;
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 @Deprecated
43 public class ServletLogChute implements LogChute
44 {
45 public static final String RUNTIME_LOG_LEVEL_KEY =
46 "runtime.log.logsystem.servlet.level";
47
48 private int enabled = TRACE_ID;
49
50 protected ServletContext servletContext = null;
51
52 public static final String PREFIX = " Velocity ";
53
54
55
56
57
58
59
60
61 public ServletLogChute()
62 {
63 }
64
65
66
67
68
69
70
71 public void init(RuntimeServices rs) throws Exception
72 {
73 Object obj = rs.getApplicationAttribute(ServletContext.class.getName());
74 if (obj == null)
75 {
76 throw new IllegalStateException("Could not retrieve ServletContext from application attributes!");
77 }
78 servletContext = (ServletContext)obj;
79
80
81 String level = (String)rs.getProperty(RUNTIME_LOG_LEVEL_KEY);
82 if (level != null)
83 {
84
85 setEnabledLevel(toLevel(level));
86 }
87 }
88
89 protected int toLevel(String level) {
90 if (level.equalsIgnoreCase("debug"))
91 {
92 return DEBUG_ID;
93 }
94 else if (level.equalsIgnoreCase("info"))
95 {
96 return INFO_ID;
97 }
98 else if (level.equalsIgnoreCase("warn"))
99 {
100 return WARN_ID;
101 }
102 else if (level.equalsIgnoreCase("error"))
103 {
104 return ERROR_ID;
105 }
106 else
107 {
108 return TRACE_ID;
109 }
110 }
111
112
113
114
115 public void setEnabledLevel(int level)
116 {
117 this.enabled = level;
118 }
119
120
121
122
123 public int getEnabledLevel()
124 {
125 return this.enabled;
126 }
127
128
129
130
131
132
133 public boolean isLevelEnabled(int level)
134 {
135 return (level >= this.enabled);
136 }
137
138
139
140
141 public void log(int level, String message)
142 {
143 if (!isLevelEnabled(level))
144 {
145 return;
146 }
147
148 switch (level)
149 {
150 case WARN_ID:
151 servletContext.log(PREFIX + WARN_PREFIX + message);
152 break;
153 case INFO_ID:
154 servletContext.log(PREFIX + INFO_PREFIX + message);
155 break;
156 case DEBUG_ID:
157 servletContext.log(PREFIX + DEBUG_PREFIX + message);
158 break;
159 case TRACE_ID:
160 servletContext.log(PREFIX + TRACE_PREFIX + message);
161 break;
162 case ERROR_ID:
163 servletContext.log(PREFIX + ERROR_PREFIX + message);
164 break;
165 default:
166 servletContext.log(PREFIX + " : " + message);
167 break;
168 }
169 }
170
171 public void log(int level, String message, Throwable t)
172 {
173 if (!isLevelEnabled(level))
174 {
175 return;
176 }
177
178 message += " - "+t.toString();
179 if (level >= ERROR_ID)
180 {
181 StringWriter sw = new StringWriter();
182 t.printStackTrace(new PrintWriter(sw));
183 message += "\n" + sw.toString();
184 }
185
186 log(level, message);
187 }
188
189 }