Log4j2:根据调用的logger方法的不同文件

时间:2017-12-03 19:06:10

标签: java java-ee logging log4j log4j2

officiale Apache guide之后,我设法写了这个愚蠢的xml文件,用log4j2配置我的记录器2.10:

<Configuration status="WARN">
  <Appenders>
    <Console name="Console" target="SYSTEM_OUT">
     <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
    </Console>
    <File name="FileFatal" immediateFlush="true" fileName="bin/logs/fatal.log">
      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
     </File>
     <File name="FileError" immediateFlush="true" fileName="bin/logs/error.log">
      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
     </File>
     <File name="FileWarn" immediateFlush="true" fileName="bin/logs/warn.log">
      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
     </File>
     <File name="FileInfo" immediateFlush="true" fileName="bin/logs/info.log">
      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
     </File>
     <File name="FileDebug" immediateFlush="true" fileName="bin/logs/debug.log">
      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
     </File>
     <File name="FileTrace" immediateFlush="true" fileName="bin/logs/trace.log">
      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
     </File>
  </Appenders>
  <Loggers>
    <Root level="trace">
      <AppenderRef ref="Console"/>
      <AppenderRef ref="FileFatal" level="fatal"/>
      <AppenderRef ref="FileError" level="error"/>
      <AppenderRef ref="FileWarn" level="warn"/>
      <AppenderRef ref="FileInfo" level="info"/>
      <AppenderRef ref="FileDebug" level="debug"/>
      <AppenderRef ref="FileTrace" level="trace"/>
    </Root>
  </Loggers>
</Configuration>

似乎工作正常。 无论如何,我希望将error()info()debug()warn()trace()方法写在不同的特定文件中,显然在控制台旁边。相反,例如,在警告日志文件中我也发现错误和致命的。我该怎么设置它?这似乎不像我在其他任何地方找到的标准xml配置,有一些不同的语法不同的标签。

0 个答案:

没有答案