Java 如何将日志写入两个不同的记录器?

Java 如何将日志写入两个不同的记录器?,java,logging,configuration,log4j,log4j2,Java,Logging,Configuration,Log4j,Log4j2,我能够使用log4j2创建两个日志,并且我能够将日志写入单个日志文件。如何将日志写入两个不同的记录器 我修改了log4j2.xml文件,使其具有两个记录器 任何示例?您可能需要配置多个附加器,而不是配置多个记录器。例如: <?xml version="1.0" encoding="UTF-8"?> <Configuration status="warn"> <Appenders> <File name="MyFile" fileName="l

我能够使用log4j2创建两个日志,并且我能够将日志写入单个日志文件。如何将日志写入两个不同的记录器

我修改了log4j2.xml文件,使其具有两个记录器


任何示例?

您可能需要配置多个附加器,而不是配置多个记录器。例如:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn">
  <Appenders>
    <File name="MyFile" fileName="logs/app.log">
      <PatternLayout>
        <Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
      </PatternLayout>
    </File>
    <File name="Other" fileName="logs/other.log">
      <PatternLayout>
        <Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
      </PatternLayout>
    </File>
  </Appenders>
  <Loggers>
    <Root level="trace">
      <AppenderRef ref="MyFile" level="trace"/>
      <AppenderRef ref="Other" level="debug"/>
    </Root>
  </Loggers>
</Configuration>

%d%p%c{1.}[%t]%m%n
%d%p%c{1.}[%t]%m%n

第1点

我猜你是在要求将一个日志写入不同的目的地,例如不同的文件。正如Remko提到的,您可以配置不同的appender来处理每个日志文件

由于我没有足够的声誉来评论Remko的回答,以下是我的一些附加示例:

如果您对日志使用调试级别,调用
logger.DEBUG(“您的消息”)
并按如下所示配置log4j2.xml,您将在file1.log和file2.log中看到“您的消息”


,例6用于解释。简言之,由于跟踪级别低于调试级别,所有具有调试级别的日志都可以在跟踪中传递并记录

第3点

写入不同目的地的另一种可能性是通过追加器可加性

给定记录器的每个已启用日志记录请求都将转发给 记录器LoggerConfig中的所有附件以及 LoggerConfig父母的附属者


如果下面的答案回答了您的问题,您可以关闭此对话框吗?