关于log4j:Wildfly日志记录-如何防止将应用程序日志记录到serve.log

Wildfly Logging - How to prevent application log to be logged to serve.log

我正在尝试按应用程序分隔日志。 standalone.xml带有用于控制台和文件的预配置日志。我为我的应用程序和相应的记录器创建了一个文件处理程序。但是日志正在我的application.log和server.log中记录。

我确认我的Web应用程序不包含log4j.jar

任何人都可以让我知道如何防止log4j登录server.log并仅登录到相应的应用程序日志文件吗?

非常感谢!

-Web应用程序服务器:Wildfly 9.0.1

-standalone.xml代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<subsystem xmlns="urn:jboss:domain:logging:3.0">
<console-handler name="CONSOLE">
    <level name="INFO"/>
    <formatter>
        <named-formatter name="COLOR-PATTERN"/>
    </formatter>
</console-handler>
<periodic-rotating-file-handler name="FILE" autoflush="true">
    <formatter>
        <named-formatter name="PATTERN"/>
    </formatter>
    <file relative-to="jboss.server.log.dir" path="server.log"/>
    <suffix value=".yyyy-MM-dd"/>
   
</periodic-rotating-file-handler>

<periodic-rotating-file-handler name="SECVALFILE" autoflush="true">
    <formatter>
        <named-formatter name="PATTERN"/>
    </formatter>
    <file relative-to="jboss.server.log.dir" path="securityvalidation.log"/>
    <suffix value=".yyyy-MM-dd"/>
   
</periodic-rotating-file-handler>

<logger category="com.arjuna">
    <level name="WARN"/>
</logger>
<logger category="org.apache.tomcat.util.modeler">
    <level name="WARN"/>
</logger>
<logger category="org.jboss.as.config">
    <level name="DEBUG"/>
</logger>
<logger category="sun.rmi">
    <level name="WARN"/>
</logger>
<logger category="jacorb">
    <level name="WARN"/>
</logger>
<logger category="jacorb.config">
    <level name="ERROR"/>
</logger>

<logger category="com.oracle.securityvalidation">
    <level name="DEBUG"/>
    <handlers>
        <handler name="SECVALFILE"/>
    </handlers>
</logger>
<root-logger>
    <level name="INFO"/>
    <handlers>
        <handler name="CONSOLE"/>
        <handler name="FILE"/>
    </handlers>
</root-logger>

......


我已经找到了问题。

默认情况下,父记录器将处理任何消息。我们可以使用记录器属性" use-parent-handlers"来指定是否由父记录器处理消息

非常感谢您!

1
2
3
4
5
<logger category="com.oracle.securityvalidation" use-parent-handlers="false">
<level name="DEBUG"/>
<handlers>
    <handler name="SECVALFILE"/>
</handlers>