Ich habe eine Anwendung und mehr als einen Kunden, ich möchte die Protokolle nach customerId (Java-Variable) trennen, erstellen Sie auch verschiedene Arten von Level-Level-Hierarchie.Log4j2 - Eine App, mehrere Protokolle und Ebenen
Zum Beispiel:
/logs/customer1/admin.txt
/logs/customer1/support.txt
/logs/customer2/admin.txt
/logs/customer2/support.txt
ich konnte trennen von "Ebenen" auf diese Weise: log4j2.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration status="WARN">
<properties>
<property name="appName">App</property>
<property name="pattern">%d{HH:mm:ss.SSS} ${appName} %-5level %logger{36} - %msg%n</property>
</properties>
<appenders>
<File name="adm" fileName="c:\logs\adm.txt" append="true">
<PatternLayout pattern="${pattern}" />
</File>
<File name="support" fileName="c:\logs\support.txt" append="true">
<PatternLayout pattern="${pattern}" />
</File>
</appenders>
<loggers>
<Logger name="adm" additivity="false">
<AppenderRef ref="adm" />
</Logger>
<Logger name="support" additivity="false">
<AppenderRef ref="adm" />
<AppenderRef ref="support" />
</Logger>
<root level="ERROR">
<appender-ref ref="support" />
<appender-ref ref="adm" />
</root>
</loggers>
</configuration>
und in der java:
static final Logger adm = LogManager.getLogger("adm");
static final Logger support= LogManager.getLogger("support");
mit dieser Konfiguration, wenn ich "support.info" verwenden ... geht das Protokoll in den beiden Dateien. und es ist perfekt. aber ich konnte nicht durch customerID trennen
Ich mache es richtig? Wie kann ich nach customerId (Java-Variable) trennen?
Vielen Dank.
Wollen Sie sagen, dass der RoutingAppender für Sie arbeitet oder ist das eine Frage? – rgoers