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