1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 package org.slf4j.osgi.logservice.impl;
34
35 import org.osgi.framework.Bundle;
36 import org.osgi.framework.ServiceReference;
37 import org.osgi.framework.Version;
38 import org.osgi.service.log.LogService;
39 import org.slf4j.Logger;
40 import org.slf4j.LoggerFactory;
41
42
43
44
45
46
47
48
49 public class LogServiceImpl implements LogService {
50
51 private static final String UNKNOWN = "[Unknown]";
52
53 private final Logger delegate;
54
55
56
57
58
59
60
61 public LogServiceImpl(Bundle bundle) {
62
63 String name = bundle.getSymbolicName();
64 Version version = bundle.getVersion();
65 if (version == null) {
66 version = Version.emptyVersion;
67 }
68 delegate = LoggerFactory.getLogger(name + '.' + version);
69 }
70
71
72
73
74
75
76 public void log(int level, String message) {
77
78 switch (level) {
79 case LOG_DEBUG:
80 delegate.debug(message);
81 break;
82 case LOG_ERROR:
83 delegate.error(message);
84 break;
85 case LOG_INFO:
86 delegate.info(message);
87 break;
88 case LOG_WARNING:
89 delegate.warn(message);
90 break;
91 default:
92 break;
93 }
94 }
95
96
97
98
99
100
101
102 public void log(int level, String message, Throwable exception) {
103
104 switch (level) {
105 case LOG_DEBUG:
106 delegate.debug(message, exception);
107 break;
108 case LOG_ERROR:
109 delegate.error(message, exception);
110 break;
111 case LOG_INFO:
112 delegate.info(message, exception);
113 break;
114 case LOG_WARNING:
115 delegate.warn(message, exception);
116 break;
117 default:
118 break;
119 }
120 }
121
122
123
124
125
126
127
128 public void log(ServiceReference sr, int level, String message) {
129
130 switch (level) {
131 case LOG_DEBUG:
132 if(delegate.isDebugEnabled()){
133 delegate.debug(createMessage(sr, message));
134 }
135 break;
136 case LOG_ERROR:
137 if(delegate.isErrorEnabled()){
138 delegate.error(createMessage(sr, message));
139 }
140 break;
141 case LOG_INFO:
142 if(delegate.isInfoEnabled()){
143 delegate.info(createMessage(sr, message));
144 }
145 break;
146 case LOG_WARNING:
147 if(delegate.isWarnEnabled()){
148 delegate.warn(createMessage(sr, message));
149 }
150 break;
151 default:
152 break;
153 }
154 }
155
156
157
158
159
160
161
162
163 private String createMessage(ServiceReference sr, String message) {
164
165 StringBuilder output = new StringBuilder();
166 if (sr != null) {
167 output.append('[').append(sr.toString()).append(']');
168 } else {
169 output.append(UNKNOWN);
170 }
171 output.append(message);
172
173 return output.toString();
174 }
175
176
177
178
179
180
181
182 public void log(ServiceReference sr, int level, String message, Throwable exception) {
183
184 switch (level) {
185 case LOG_DEBUG:
186 if(delegate.isDebugEnabled()){
187 delegate.debug(createMessage(sr, message), exception);
188 }
189 break;
190 case LOG_ERROR:
191 if(delegate.isErrorEnabled()){
192 delegate.error(createMessage(sr, message), exception);
193 }
194 break;
195 case LOG_INFO:
196 if(delegate.isInfoEnabled()){
197 delegate.info(createMessage(sr, message), exception);
198 }
199 break;
200 case LOG_WARNING:
201 if(delegate.isWarnEnabled()){
202 delegate.warn(createMessage(sr, message), exception);
203 }
204 break;
205 default:
206 break;
207 }
208 }
209 }