【发布时间】:2014-10-30 20:32:20
【问题描述】:
所以我一直在尝试在 JBoss EAP 6.1 上的 ear 应用程序中使用自定义 log4j.xml。我发现如果我使用文件附加程序和直接的静态文件名,它将按照我的预期记录到该文件(在这种情况下,在我的战争中使用 log4j2.xml,但如果我使用 log4j.xml,它会做同样的事情使用 log4j 1.2):
<?xml version="1.0" encoding="UTF-8" ?>
<Configuration status="debug">
<Appenders>
<Console name="STDOUT" target="SYSTEM_OUT">
<PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n" />
</Console>
<File name="A1" fileName="server.log">
<PatternLayout pattern="%t %-5p %c{2} - %m%n" />
</File>
</Appenders>
<Loggers>
<Logger name="com.xxx.yyy" level="debug" additivity="false">
<AppenderRef ref="A1" />
</Logger>
</Loggers>
</Configuration>
但这会导致它记录到 [jboss-eap]/bin/server.log。我可以放入替换变量以将其指向 jboss 日志目录下的文件(在 eap 情况下,[jboss-eap]/standalone/log/test.log):
<?xml version="1.0" encoding="UTF-8" ?>
<Configuration status="debug">
<Appenders>
<Console name="STDOUT" target="SYSTEM_OUT">
<PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n" />
</Console>
<File name="A1" fileName="${sys:jboss.server.log.dir}/test.log">
<PatternLayout pattern="%t %-5p %c{2} - %m%n" />
</File>
</Appenders>
<Loggers>
<Logger name="com.xxx.yyy" level="debug" additivity="false">
<AppenderRef ref="A1" />
</Logger>
</Loggers>
</Configuration>
我可以看到它正在为我做替换:
16:16:28,626 INFO [stdout] (ServerService Thread Pool -- 71) 2014-10-30 16:16:28,626
DEBUG Starting FileManager C:\Users\xxxxxx\Apps\jbossdevstudio\runtimes\jboss-
eap\standalone\log/test.log
输出实际上会显示在 test.log 中。但我真正想要的只是将日志记录到标准 server.log 中。如果我尝试上述替换但使用 server.log 而不是 test.log,则实际上没有任何记录。我尝试过的另一件事是使用控制台附加程序,但随后我得到了非常长的输出行,它记录了两次时间戳并有两个日志级别指示器:
16:24:08,038 INFO [stdout] (http-/0.0.0.0:8080-1) 2014-10-30 16:24:08,036 INFO
[http-/0.0.0.0:8080-1] com.xxx.TestServlet (TestServlet.java:25) - This is a test
当我真正想要的只是:
2014-10-30 16:24:08,036 INFO [http-/0.0.0.0:8080-1] com.xxx.TestServlet
(TestServlet.java:25) - This is a test
所以我不知道该怎么做。我们可以配置 jboss 内部日志配置,但是在我们的组织中,在服务器中更改此类内容涉及到我们的中间件团队,如果我们需要调整某些类的日志级别,我们宁愿只更改自定义 log4j.xml。如有必要,我们可以接受更长的输出,但我们也使用 Splunk,我相信它会在 stdout 输出的日志级别而不是我们在尝试按日志级别过滤日志时实际记录的日志级别上感到困惑。
如果大家有任何建议,我将不胜感激。
【问题讨论】:
标签: log4j jboss-eap-6