Java 如何在log4j2中指定日志文件

Java 如何在log4j2中指定日志文件,java,log4j,Java,Log4j,在log4j中,我可以指定如下文件: log4j.additivity.org.springframework.ws.server.MessageTracing=false log4j.logger.org.springframework.ws.server.MessageTracing=TRACE, AUDIT log4j.additivity.org.springframework.ws.client.MessageTracing=false log4j.logger.org.springf

在log4j中,我可以指定如下文件:

log4j.additivity.org.springframework.ws.server.MessageTracing=false
log4j.logger.org.springframework.ws.server.MessageTracing=TRACE, AUDIT
log4j.additivity.org.springframework.ws.client.MessageTracing=false
log4j.logger.org.springframework.ws.client.MessageTracing=TRACE, AUDIT
当我想登录名为AUDIT的appender时

我应该如何将其重写为log4j2xml配置

更新

我定义了根记录器,如:

    <Root level="error">
        <AppenderRef ref="console" />
        <AppenderRef ref="syslog" />
    </Root>

但是在log4j2中,我不知道如何在一句话中重写

您是否尝试过以下方法,您需要首先定义应用程序appender:

   <Appenders>
    <File name="app" fileName="logs/app.log">
      <PatternLayout>
        <Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
      </PatternLayout>
    </File>
  </Appenders>
<logger name="org.my.project" level="debug">
   <appender-ref ref="app" />
</logger>
然后定义记录器的附加器:

   <Appenders>
    <File name="app" fileName="logs/app.log">
      <PatternLayout>
        <Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
      </PatternLayout>
    </File>
  </Appenders>
<logger name="org.my.project" level="debug">
   <appender-ref ref="app" />
</logger>

那么您需要登录到单独的日志文件吗?是的,我不想将它们登录到rootyes,我尝试了,但没有更好的解决方案?我想指定大约10个包,当log4j2比第一个更好时,我希望得到更优雅的解决方案(据我所知),除此之外,所有子日志记录程序都继承相同的日志记录程序定义,例如:org.my.project.*下的所有内容都将对org.my.project使用相同的日志记录程序定义,除非另有规定,但我希望记录来自第三方库(如org.springframework)的信息,所以在log4j中,我可以用一个聪明易懂的句子来做这件事,而在log4j2中,我需要做一些可怕的事情,我不同意。我发现XML配置比log4j中的.properties样式更易于阅读。但是在这里定义它们的方法是相同的——只需为每一个创建一个记录器定义。没有人说XML不那么冗长。