1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package edu.internet2.middleware.shibboleth.common.util;
19
20 import org.apache.velocity.runtime.RuntimeServices;
21 import org.apache.velocity.runtime.log.LogChute;
22 import org.slf4j.Logger;
23 import org.slf4j.LoggerFactory;
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 public class Slf4JLogChute implements LogChute {
44
45
46 public static final String LOGCHUTE_SLF4J_NAME = "runtime.log.logsystem.slf4j.name";
47
48
49 public static final String DEFAULT_LOG_NAME = "org.apache.velocity";
50
51
52 protected Logger log;
53
54
55 public void init(RuntimeServices rs) throws Exception {
56 String name = (String) rs.getProperty(LOGCHUTE_SLF4J_NAME);
57 if (name == null) {
58 name = DEFAULT_LOG_NAME;
59 }
60 log = LoggerFactory.getLogger(name);
61 log(LogChute.DEBUG_ID, "Slf4JLogChute name is '" + name + "'");
62 }
63
64
65 public boolean isLevelEnabled(int level) {
66 switch (level) {
67 case LogChute.DEBUG_ID:
68 return log.isDebugEnabled();
69 case LogChute.INFO_ID:
70 return log.isInfoEnabled();
71 case LogChute.TRACE_ID:
72 return log.isTraceEnabled();
73 case LogChute.WARN_ID:
74 return log.isWarnEnabled();
75 case LogChute.ERROR_ID:
76 return log.isErrorEnabled();
77 default:
78 return true;
79 }
80 }
81
82
83 public void log(int level, String message) {
84 switch (level) {
85 case LogChute.ERROR_ID:
86 log.error(message);
87 case LogChute.WARN_ID:
88 log.warn(message);
89 break;
90 case LogChute.INFO_ID:
91 log.info(message);
92 break;
93 case LogChute.TRACE_ID:
94 log.trace(message);
95 break;
96 case LogChute.DEBUG_ID:
97 default:
98 log.debug(message);
99 }
100 }
101
102
103 public void log(int level, String message, Throwable t) {
104 switch (level) {
105 case LogChute.ERROR_ID:
106 log.error(message, t);
107 case LogChute.WARN_ID:
108 log.warn(message, t);
109 break;
110 case LogChute.INFO_ID:
111 log.info(message, t);
112 break;
113 case LogChute.TRACE_ID:
114 log.trace(message, t);
115 break;
116 case LogChute.DEBUG_ID:
117 default:
118 log.debug(message, t);
119 }
120 }
121
122 }