Different level of logs in different log files

2019-04-10 18:07发布

How can we write a simple log4j2.xml file with different levels of logs going into different files?

For example we have error logs any info logs I need to push all error log messages into one log file and all info log messages into another file.

I want that info message in InfoController.log file and error message in LoginController.log file

How can i do it?

标签: log4j2
3条回答
姐就是有狂的资本
2楼-- · 2019-04-10 18:15
  <Filters>
    <ThresholdFilter level="warn" onMatch="DENY" onMismatch="ACCEPT" />
  </Filters>

This will print only Info log.If you assign level error then it will print only warn message etc.

查看更多
神经病院院长
3楼-- · 2019-04-10 18:35

Finally got the answer by doing this i got the logs in different files.

<Loggers>
    <logger name="com.mvc.login" level="info" additivity="false">
        <AppenderRef ref="LoginController" level="error"/>
        <AppenderRef ref="InfoController" level="info"/>
    </logger>
  </Loggers>
查看更多
Summer. ? 凉城
4楼-- · 2019-04-10 18:37

Loggers must have unique names. The second logger in your config will replace the first one, which explains why you don't see any output for the appender referenced by the first logger.

Normally, a configuration has a root logger that will receive all events. I would recommend that, so that part of the config becomes:

<Loggers>
    <logger name="com.mvc.login" level="error" additivity="false">
        <AppenderRef ref="LoginController"/>
    </logger>
   <root level="trace">
        <AppenderRef ref="InfoController"/>
    </root>
</Loggers>
查看更多
登录 后发表回答