我正在尝试按应用程序分隔日志。 standalone.xml附带一个预先配置的控制台和文件日志。我为我的应用程序和相应的记录器创建了一个文件处理程序。但是日志记录在我的application.log和server.log中。
我确认我的webapp不包含log4j.jar
有谁能让我知道如何阻止log4j登录server.log并只记录到相应的应用程序日志文件?
非常感谢!
- Web应用程序服务器:Wildfly 9.0.1
- standalone.xml代码
<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"/>
<append value="true"/>
</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"/>
<append value="true"/>
</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>
......
答案 0 :(得分:2)
我已经发现了这个问题。
默认情况下,父记录器将处理任何消息。我们可以使用记录器属性“ use-parent-handlers ”来指定是否应该由父记录器处理消息
无论如何,非常感谢你!
<logger category="com.oracle.securityvalidation" use-parent-handlers="false">
<level name="DEBUG"/>
<handlers>
<handler name="SECVALFILE"/>
</handlers>