【发布时间】:2016-05-24 10:57:10
【问题描述】:
我有一个应用程序和多个客户,我想通过 customerId(java 变量)来分隔日志,同时创建不同类型的层级层次结构。
例如:
/logs/customer1/admin.txt
/logs/customer1/support.txt
/logs/customer2/admin.txt
/logs/customer2/support.txt
我可以这样用“级别”分开: 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>
在java中:
static final Logger adm = LogManager.getLogger("adm");
static final Logger support= LogManager.getLogger("support");
当我使用“support.info”时使用此配置...日志会转到这两个文件。它是完美的。但我无法通过 customerID 分开
我做得对吗? 如何按 customerId(java 变量) 分隔?
谢谢。
【问题讨论】:
标签: java logging configuration log4j2