44import com .genexus .diagnostics .core .ILogger ;
55import org .apache .logging .log4j .Level ;
66import org .apache .logging .log4j .LogManager ;
7- import org .apache .logging .log4j .MarkerManager ;
87import org .apache .logging .log4j .ThreadContext ;
98import org .apache .logging .log4j .core .Appender ;
109import org .apache .logging .log4j .core .LoggerContext ;
2120import java .util .Map ;
2221
2322public class Log4J2Logger implements ILogger {
24- private org .apache .logging .log4j .Logger log ;
23+ private static final String STACKTRACE_KEY = "stackTrace" ;
24+ private static final String MESSAGE_KEY = "message" ;
25+ private static final String DATA_KEY = "data" ;
2526 private static final boolean IS_JSON_FORMAT = isJsonLogFormat ();
2627
28+ private final org .apache .logging .log4j .Logger log ;
29+
2730 public Log4J2Logger (final Class <?> clazz ) {
2831 log = org .apache .logging .log4j .LogManager .getLogger (clazz );
2932 }
@@ -166,7 +169,7 @@ public void warn(String msg) {
166169 public void trace (String msg ) {
167170 log .trace (msg );
168171 }
169-
172+
170173 public void trace (Throwable ex , String [] list ) {
171174 if (log .isTraceEnabled ()) {
172175 StringBuilder msg = new StringBuilder ();
@@ -209,57 +212,56 @@ public boolean isErrorEnabled() {
209212 return log .isErrorEnabled ();
210213 }
211214
215+ @ Override
212216 public boolean isFatalEnabled () {
213217 return log .isFatalEnabled ();
214218 }
215219
220+ @ Override
216221 public boolean isWarnEnabled () {
217222 return log .isWarnEnabled ();
218223 }
219224
225+ @ Override
220226 public boolean isInfoEnabled () {
221227 return log .isInfoEnabled ();
222228 }
223229
230+ @ Override
224231 public boolean isTraceEnabled () {
225232 return log .isTraceEnabled ();
226233 }
227234
235+ @ Override
228236 public boolean isEnabled (int logLevel ) {
229237 return log .isEnabled (getLogLevel (logLevel ));
230238 }
231239
232- public boolean isEnabled (int logLevel , String marker ) {
233- return log .isEnabled (getLogLevel (logLevel ), MarkerManager .getMarker (marker ));
234- }
235-
240+ @ Override
236241 public void setContext (String key , Object value ) {
237242 // Add entry to the MDC (only works for JSON log format)
238243 ThreadContext .put (key , fromObjectToString (value ));
239244 }
240245
246+ @ Override
241247 public void write (String message , int logLevel , Object data , boolean stackTrace ) {
242248 if (isEnabled (logLevel )) {
243249 if (IS_JSON_FORMAT )
244250 writeJsonFormat (message , logLevel , data , stackTrace );
245251 else
246252 writeTextFormat (message , logLevel , data , stackTrace );
247- }
253+ }
248254 }
249255
250- private static final String STACKTRACE_KEY = "stackTrace" ;
251- private static final String MESSAGE_KEY = "message" ;
252-
253256 private void writeTextFormat (String message , int logLevel , Object data , boolean stackTrace ) {
254- String dataKey = "data" ;
255257 Map <String , Object > mapMessage = new LinkedHashMap <>();
256258
257259 if (data == null || (data instanceof String && "null" .equals (data .toString ()))) {
258- mapMessage .put (dataKey , JSONObject .NULL );
260+ mapMessage .put (DATA_KEY , JSONObject .NULL );
259261 } else if (data instanceof String && isJson ((String ) data )) { // JSON Strings
260- mapMessage .put (dataKey , jsonStringToMap ((String )data ));
262+ mapMessage .put (DATA_KEY , jsonStringToMap ((String ) data ));
261263 } else {
262- mapMessage .put (dataKey , data );
264+ mapMessage .put (DATA_KEY , data );
263265 }
264266
265267 if (stackTrace ) {
@@ -272,15 +274,14 @@ private void writeTextFormat(String message, int logLevel, Object data, boolean
272274 }
273275
274276 private void writeJsonFormat (String message , int logLevel , Object data , boolean stackTrace ) {
275- String dataKey = "data" ;
276277 MapMessage <?, ?> mapMessage = new MapMessage <>().with (MESSAGE_KEY , message );
277278
278279 if (data == null || (data instanceof String && "null" .equals (data .toString ()))) {
279- mapMessage .with (dataKey , (Object ) null );
280+ mapMessage .with (DATA_KEY , (Object ) null );
280281 } else if (data instanceof String && isJson ((String ) data )) { // JSON Strings
281- mapMessage .with (dataKey , jsonStringToMap ((String )data ));
282+ mapMessage .with (DATA_KEY , jsonStringToMap ((String ) data ));
282283 } else {
283- mapMessage .with (dataKey , data );
284+ mapMessage .with (DATA_KEY , data );
284285 }
285286
286287 if (stackTrace ) {
@@ -293,13 +294,20 @@ private void writeJsonFormat(String message, int logLevel, Object data, boolean
293294 private Level getLogLevel (int logLevel ) {
294295 LogLevel level = LogLevel .fromInt (logLevel );
295296 switch (level ) {
296- case OFF : return Level .OFF ;
297- case TRACE : return Level .TRACE ;
298- case INFO : return Level .INFO ;
299- case WARN : return Level .WARN ;
300- case ERROR : return Level .ERROR ;
301- case FATAL : return Level .FATAL ;
302- default : return Level .DEBUG ;
297+ case OFF :
298+ return Level .OFF ;
299+ case TRACE :
300+ return Level .TRACE ;
301+ case INFO :
302+ return Level .INFO ;
303+ case WARN :
304+ return Level .WARN ;
305+ case ERROR :
306+ return Level .ERROR ;
307+ case FATAL :
308+ return Level .FATAL ;
309+ default :
310+ return Level .DEBUG ;
303311 }
304312 }
305313
@@ -320,6 +328,7 @@ private static String fromObjectToString(Object value) {
320328 res = new JSONArray ((List <?>) value ).toString ();
321329 } else {
322330 // Any other object → serialize as JSON
331+ // You never enter here from GX
323332 res = JSONObject .quote (value .toString ());
324333 }
325334 return res ;
0 commit comments