Ein alternativer Ansatz zu schaffen sein, um eine angepasste LogEventFactory
verwenden können könnte. Ein LogEventFactory
wird verwendet, um LogEvents zu generieren. Anwendungen können den Standard LogEventFactory
ersetzen, indem Sie den Wert der Systemeigenschaft Log4jLogEventFactory
auf den Namen der benutzerdefinierten LogEventFactory-Klasse festlegen.
Die Methode, die eine Instanz von LogEvent
ist zu erstellen aufgerufen wird, wie folgt:
LogEvent createEvent(String loggerName,
org.apache.logging.log4j.Marker marker,
String fqcn,
org.apache.logging.log4j.Level level,
org.apache.logging.log4j.message.Message data,
List<Property> properties,
Throwable t)
und DefaultLogEventFactory
die grundlegende Implementierung für log4j ist. In Ihrem Fall könnten Sie die Basisimplementierung erweitern und die Nachricht, nach der Sie die Standardimplementierung aufrufen, umgehen. Es wäre so etwas wie dieses werden:
public class MyCustomLogEventFactory extends DefaultLogEventFactory {
/**
* Creates a log event.
*
* @param loggerName The name of the Logger.
* @param marker An optional Marker.
* @param fqcn The fully qualified class name of the caller.
* @param level The event Level.
* @param data The Message.
* @param properties Properties to be added to the log event.
* @param t An optional Throwable.
* @return The LogEvent.
*/
@Override
public LogEvent createEvent(final String loggerName, final Marker marker,
final String fqcn, final Level level, final Message data,
final List<Property> properties, final Throwable t) {
super.createEvent(loggerName, marker, fqcn, level, StringEscapeUtils.escapeJava(data != null ? data.toString() : null), properties, t);
}
}
Ich sehe DefaultLogEventFactory nicht – gstackoverflow
Es ist in 'org.apache.logging.log4j.core.impl' Version 2.x von log4j – uniknow
Ich verwende 1.2.17 Version – gstackoverflow