@@ -106,34 +106,57 @@ public abstract class AbstractLogger implements ExtendedLogger, LocationAwareLog
106
106
private static final ThreadLocal <DefaultLogBuilder > logBuilder = ThreadLocal .withInitial (DefaultLogBuilder ::new );
107
107
108
108
/**
109
- * Creates a new logger named after this class (or subclass) .
109
+ * Constructs an instance named after this class.
110
110
*/
111
111
public AbstractLogger () {
112
- final String canonicalName = getClass ().getCanonicalName ();
113
- this .name = canonicalName != null ? canonicalName : getClass ().getName ();
114
- this .messageFactory = createDefaultMessageFactory ();
115
- this .flowMessageFactory = createDefaultFlowMessageFactory ();
112
+ this (null , null , null );
116
113
}
117
114
118
115
/**
119
- * Creates a new named logger .
116
+ * Constructs an instance using the provided name .
120
117
*
121
- * @param name the logger name
118
+ * @param name the logger name (if null, will be derived from this class or subclass)
122
119
*/
123
120
public AbstractLogger (final String name ) {
124
- this (name , createDefaultMessageFactory () );
121
+ this (name , null , null );
125
122
}
126
123
127
124
/**
128
- * Creates a new named logger with a particular {@link MessageFactory}.
125
+ * Constructs an instance using the provided name and {@link MessageFactory}.
129
126
*
130
- * @param name the logger name
131
- * @param messageFactory the message factory, if null then use the default message factory.
127
+ * @param name the logger name (if null, will be derived from this class)
128
+ * @param messageFactory the {@link Message} factory ( if null, {@link ParameterizedMessageFactory} will be used)
132
129
*/
133
130
public AbstractLogger (final String name , final MessageFactory messageFactory ) {
134
- this .name = name ;
135
- this .messageFactory = messageFactory == null ? createDefaultMessageFactory () : narrow (messageFactory );
136
- this .flowMessageFactory = createDefaultFlowMessageFactory ();
131
+ this (name , messageFactory , null );
132
+ }
133
+
134
+ /**
135
+ * The canonical constructor.
136
+ *
137
+ * @param name the logger name (if null, will be derived from this class)
138
+ * @param messageFactory the {@link Message} factory (if null, {@link ParameterizedMessageFactory} will be used)
139
+ * @param flowMessageFactory the {@link org.apache.logging.log4j.message.FlowMessage} factory (if null, {@link DefaultFlowMessageFactory} will be used)
140
+ */
141
+ protected AbstractLogger (
142
+ final String name , final MessageFactory messageFactory , final FlowMessageFactory flowMessageFactory ) {
143
+ if (name != null ) {
144
+ this .name = name ;
145
+ } else {
146
+ final Class <? extends AbstractLogger > clazz = getClass ();
147
+ final String canonicalName = clazz .getCanonicalName ();
148
+ this .name = canonicalName != null ? canonicalName : clazz .getName ();
149
+ }
150
+ this .messageFactory =
151
+ messageFactory != null ? adaptMessageFactory (messageFactory ) : ParameterizedMessageFactory .INSTANCE ;
152
+ this .flowMessageFactory = flowMessageFactory != null ? flowMessageFactory : DefaultFlowMessageFactory .INSTANCE ;
153
+ }
154
+
155
+ private static MessageFactory2 adaptMessageFactory (final MessageFactory result ) {
156
+ if (result instanceof MessageFactory2 ) {
157
+ return (MessageFactory2 ) result ;
158
+ }
159
+ return new MessageFactory2Adapter (result );
137
160
}
138
161
139
162
/**
@@ -196,21 +219,6 @@ protected Message catchingMsg(final Throwable throwable) {
196
219
return messageFactory .newMessage (CATCHING );
197
220
}
198
221
199
- private static MessageFactory2 createDefaultMessageFactory () {
200
- return ParameterizedMessageFactory .INSTANCE ;
201
- }
202
-
203
- private static MessageFactory2 narrow (final MessageFactory result ) {
204
- if (result instanceof MessageFactory2 ) {
205
- return (MessageFactory2 ) result ;
206
- }
207
- return new MessageFactory2Adapter (result );
208
- }
209
-
210
- private static FlowMessageFactory createDefaultFlowMessageFactory () {
211
- return DefaultFlowMessageFactory .INSTANCE ;
212
- }
213
-
214
222
@ Override
215
223
public void debug (final Marker marker , final CharSequence message ) {
216
224
logIfEnabled (FQCN , Level .DEBUG , marker , message , null );
0 commit comments