Skip to content

Commit b227558

Browse files
committed
Add customized FQCN for Log4j2Logger
1 parent 6fb4fb3 commit b227558

File tree

2 files changed

+54
-47
lines changed

2 files changed

+54
-47
lines changed

dubbo-common/src/main/java/org/apache/dubbo/common/logger/log4j2/Log4j2Logger.java

Lines changed: 50 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -18,203 +18,207 @@
1818

1919
import org.apache.dubbo.common.logger.Logger;
2020

21-
import org.slf4j.spi.LocationAwareLogger;
21+
import org.apache.logging.log4j.Level;
22+
import org.apache.logging.log4j.message.MessageFactory;
2223

2324
public class Log4j2Logger implements Logger {
2425

2526
private String fqcn;
2627

2728
private final org.apache.logging.log4j.Logger logger;
2829

30+
private MessageFactory messageFactory;
31+
2932
public Log4j2Logger(org.apache.logging.log4j.Logger logger) {
3033
this.logger = logger;
3134
}
3235

3336
public Log4j2Logger(String fqcn, org.apache.logging.log4j.Logger logger) {
3437
this.fqcn = fqcn;
3538
this.logger = logger;
39+
this.messageFactory = logger.getMessageFactory();
3640
}
3741

3842
@Override
3943
public void trace(String msg) {
40-
if (fqcn != null && logger instanceof LocationAwareLogger) {
41-
((LocationAwareLogger) logger).log(null, fqcn, LocationAwareLogger.TRACE_INT, msg, null, null);
44+
if (fqcn != null) {
45+
logger.logMessage(Level.TRACE, null, fqcn, null, messageFactory.newMessage(msg), null);
4246
} else {
4347
logger.trace(msg);
4448
}
4549
}
4650

4751
@Override
4852
public void trace(String msg, Object... arguments) {
49-
if (fqcn != null && logger instanceof LocationAwareLogger) {
50-
((LocationAwareLogger) logger).log(null, fqcn, LocationAwareLogger.TRACE_INT, msg, arguments, null);
53+
if (fqcn != null) {
54+
logger.logMessage(Level.TRACE, null, fqcn, null, messageFactory.newMessage(msg, arguments), null);
5155
} else {
5256
logger.trace(msg, arguments);
5357
}
5458
}
5559

5660
@Override
5761
public void trace(Throwable e) {
58-
if (fqcn != null && logger instanceof LocationAwareLogger) {
59-
((LocationAwareLogger) logger)
60-
.log(null, fqcn, LocationAwareLogger.TRACE_INT, e == null ? null : e.getMessage(), null, e);
62+
if (fqcn != null) {
63+
logger.logMessage(
64+
Level.TRACE, null, fqcn, null, messageFactory.newMessage(e == null ? null : e.getMessage()), e);
6165
} else {
6266
logger.trace(e == null ? null : e.getMessage(), e);
6367
}
6468
}
6569

6670
@Override
6771
public void trace(String msg, Throwable e) {
68-
if (fqcn != null && logger instanceof LocationAwareLogger) {
69-
((LocationAwareLogger) logger).log(null, fqcn, LocationAwareLogger.TRACE_INT, msg, null, e);
72+
if (fqcn != null) {
73+
logger.logMessage(Level.TRACE, null, fqcn, null, messageFactory.newMessage(msg), e);
7074
} else {
7175
logger.trace(msg, e);
7276
}
7377
}
7478

7579
@Override
7680
public void debug(String msg) {
77-
if (fqcn != null && logger instanceof LocationAwareLogger) {
78-
((LocationAwareLogger) logger).log(null, fqcn, LocationAwareLogger.DEBUG_INT, msg, null, null);
81+
if (fqcn != null) {
82+
logger.logMessage(Level.DEBUG, null, fqcn, null, messageFactory.newMessage(msg), null);
7983
} else {
8084
logger.debug(msg);
8185
}
8286
}
8387

8488
@Override
8589
public void debug(String msg, Object... arguments) {
86-
if (fqcn != null && logger instanceof LocationAwareLogger) {
87-
((LocationAwareLogger) logger).log(null, fqcn, LocationAwareLogger.DEBUG_INT, msg, arguments, null);
90+
if (fqcn != null) {
91+
logger.logMessage(Level.DEBUG, null, fqcn, null, messageFactory.newMessage(msg, arguments), null);
8892
} else {
8993
logger.debug(msg, arguments);
9094
}
9195
}
9296

9397
@Override
9498
public void debug(Throwable e) {
95-
if (fqcn != null && logger instanceof LocationAwareLogger) {
96-
((LocationAwareLogger) logger)
97-
.log(null, fqcn, LocationAwareLogger.DEBUG_INT, e == null ? null : e.getMessage(), null, e);
99+
if (fqcn != null) {
100+
logger.logMessage(
101+
Level.DEBUG, null, fqcn, null, messageFactory.newMessage(e == null ? null : e.getMessage()), e);
98102
} else {
99103
logger.debug(e == null ? null : e.getMessage(), e);
100104
}
101105
}
102106

103107
@Override
104108
public void debug(String msg, Throwable e) {
105-
if (fqcn != null && logger instanceof LocationAwareLogger) {
106-
((LocationAwareLogger) logger).log(null, fqcn, LocationAwareLogger.DEBUG_INT, msg, null, e);
109+
if (fqcn != null) {
110+
logger.logMessage(Level.DEBUG, null, fqcn, null, messageFactory.newMessage(msg), e);
107111
} else {
108112
logger.debug(msg, e);
109113
}
110114
}
111115

112116
@Override
113117
public void info(String msg) {
114-
if (fqcn != null && logger instanceof LocationAwareLogger) {
115-
((LocationAwareLogger) logger).log(null, fqcn, LocationAwareLogger.INFO_INT, msg, null, null);
118+
if (fqcn != null) {
119+
logger.logMessage(Level.INFO, null, fqcn, null, messageFactory.newMessage(msg), null);
116120
} else {
117121
logger.info(msg);
118122
}
119123
}
120124

121125
@Override
122126
public void info(String msg, Object... arguments) {
123-
if (fqcn != null && logger instanceof LocationAwareLogger) {
124-
((LocationAwareLogger) logger).log(null, fqcn, LocationAwareLogger.INFO_INT, msg, arguments, null);
127+
if (fqcn != null) {
128+
logger.logMessage(Level.INFO, null, fqcn, null, messageFactory.newMessage(msg, arguments), null);
125129
} else {
126130
logger.info(msg, arguments);
127131
}
128132
}
129133

130134
@Override
131135
public void info(Throwable e) {
132-
if (fqcn != null && logger instanceof LocationAwareLogger) {
133-
((LocationAwareLogger) logger)
134-
.log(null, fqcn, LocationAwareLogger.INFO_INT, e == null ? null : e.getMessage(), null, e);
136+
if (fqcn != null) {
137+
logger.logMessage(
138+
Level.INFO, null, fqcn, null, messageFactory.newMessage(e == null ? null : e.getMessage()), e);
135139
} else {
136140
logger.info(e == null ? null : e.getMessage(), e);
137141
}
138142
}
139143

140144
@Override
141145
public void info(String msg, Throwable e) {
142-
if (fqcn != null && logger instanceof LocationAwareLogger) {
143-
((LocationAwareLogger) logger).log(null, fqcn, LocationAwareLogger.INFO_INT, msg, null, e);
146+
if (fqcn != null) {
147+
logger.logMessage(Level.INFO, null, fqcn, null, messageFactory.newMessage(msg), e);
144148
} else {
145149
logger.info(msg, e);
146150
}
147151
}
148152

149153
@Override
150154
public void warn(String msg) {
151-
if (fqcn != null && logger instanceof LocationAwareLogger) {
152-
((LocationAwareLogger) logger).log(null, fqcn, LocationAwareLogger.WARN_INT, msg, null, null);
155+
if (fqcn != null) {
156+
logger.logMessage(Level.WARN, null, fqcn, null, messageFactory.newMessage(msg), null);
153157
} else {
154158
logger.warn(msg);
155159
}
156160
}
157161

158162
@Override
159163
public void warn(String msg, Object... arguments) {
160-
if (fqcn != null && logger instanceof LocationAwareLogger) {
161-
((LocationAwareLogger) logger).log(null, fqcn, LocationAwareLogger.WARN_INT, msg, arguments, null);
164+
if (fqcn != null) {
165+
logger.logMessage(Level.WARN, null, fqcn, null, messageFactory.newMessage(msg, arguments), null);
162166
} else {
163167
logger.warn(msg, arguments);
164168
}
165169
}
166170

167171
@Override
168172
public void warn(Throwable e) {
169-
if (fqcn != null && logger instanceof LocationAwareLogger) {
170-
((LocationAwareLogger) logger)
171-
.log(null, fqcn, LocationAwareLogger.WARN_INT, e == null ? null : e.getMessage(), null, e);
173+
if (fqcn != null) {
174+
logger.logMessage(
175+
Level.WARN, null, fqcn, null, messageFactory.newMessage(e == null ? null : e.getMessage()), e);
172176
} else {
173177
logger.warn(e == null ? null : e.getMessage(), e);
174178
}
175179
}
176180

177181
@Override
178182
public void warn(String msg, Throwable e) {
179-
if (fqcn != null && logger instanceof LocationAwareLogger) {
180-
((LocationAwareLogger) logger).log(null, fqcn, LocationAwareLogger.WARN_INT, msg, null, e);
183+
if (fqcn != null) {
184+
logger.logMessage(Level.WARN, null, fqcn, null, messageFactory.newMessage(msg), e);
181185
} else {
182186
logger.warn(msg, e);
183187
}
184188
}
185189

186190
@Override
187191
public void error(String msg) {
188-
if (fqcn != null && logger instanceof LocationAwareLogger) {
189-
((LocationAwareLogger) logger).log(null, fqcn, LocationAwareLogger.ERROR_INT, msg, null, null);
192+
if (fqcn != null) {
193+
logger.logMessage(Level.ERROR, null, fqcn, null, messageFactory.newMessage(msg), null);
190194
} else {
191195
logger.error(msg);
192196
}
193197
}
194198

195199
@Override
196200
public void error(String msg, Object... arguments) {
197-
if (fqcn != null && logger instanceof LocationAwareLogger) {
198-
((LocationAwareLogger) logger).log(null, fqcn, LocationAwareLogger.ERROR_INT, msg, arguments, null);
201+
if (fqcn != null) {
202+
logger.logMessage(Level.ERROR, null, fqcn, null, messageFactory.newMessage(msg, arguments), null);
199203
} else {
200204
logger.error(msg, arguments);
201205
}
202206
}
203207

204208
@Override
205209
public void error(Throwable e) {
206-
if (fqcn != null && logger instanceof LocationAwareLogger) {
207-
((LocationAwareLogger) logger)
208-
.log(null, fqcn, LocationAwareLogger.ERROR_INT, e == null ? null : e.getMessage(), null, e);
210+
if (fqcn != null) {
211+
logger.logMessage(
212+
Level.ERROR, null, fqcn, null, messageFactory.newMessage(e == null ? null : e.getMessage()), e);
209213
} else {
210214
logger.error(e == null ? null : e.getMessage(), e);
211215
}
212216
}
213217

214218
@Override
215219
public void error(String msg, Throwable e) {
216-
if (fqcn != null && logger instanceof LocationAwareLogger) {
217-
((LocationAwareLogger) logger).log(null, fqcn, LocationAwareLogger.ERROR_INT, msg, null, e);
220+
if (fqcn != null) {
221+
logger.logMessage(Level.ERROR, null, fqcn, null, messageFactory.newMessage(msg), e);
218222
} else {
219223
logger.error(msg, e);
220224
}

dubbo-common/src/test/java/org/apache/dubbo/common/logger/LoggerTest.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
import org.apache.dubbo.common.logger.log4j.Log4jLoggerAdapter;
2222
import org.apache.dubbo.common.logger.log4j2.Log4j2LoggerAdapter;
2323
import org.apache.dubbo.common.logger.slf4j.Slf4jLoggerAdapter;
24+
import org.apache.dubbo.common.logger.support.FailsafeErrorTypeAwareLogger;
25+
import org.apache.dubbo.common.logger.support.FailsafeLogger;
2426

2527
import java.lang.reflect.InvocationTargetException;
2628
import java.util.stream.Stream;
@@ -49,7 +51,8 @@ static Stream<Arguments> data() {
4951
void testAllLogMethod(Class<? extends LoggerAdapter> loggerAdapter) throws Exception {
5052
LoggerAdapter adapter = loggerAdapter.getDeclaredConstructor().newInstance();
5153
adapter.setLevel(Level.ALL);
52-
Logger logger = adapter.getLogger(this.getClass());
54+
Logger logger =
55+
new FailsafeErrorTypeAwareLogger(adapter.getLogger(FailsafeLogger.class.getName(), this.getClass()));
5356
logger.error("error");
5457
logger.warn("warn");
5558
logger.info("info");

0 commit comments

Comments
 (0)