How to exclude a single Class from a Log4j Logger / Appender?

前端 未结 2 813
梦如初夏
梦如初夏 2020-12-03 20:46

I have a package \"com.example\". This package has five classes. I want to log four of these classes to a file, but exclude the fifth class.

I could write four logge

相关标签:
2条回答
  • 2020-12-03 21:03

    Simply configure your fifth class to use the log-level OFF:

    log4j.logger.com.example=INFO, MyAppender
    log4j.logger.com.example.FifthClass=OFF
    

    Actually I suggest you don't set it to OFF, but to FATAL. ERROR or even WARN instead.

    The main reason to want to ignore logging from some class is usually if it logs to much (more than is useful and makes it hard to read the log). However, most of the time you'd still want to know if something goes really wrong. By setting it to ERROR you can still see the real problematic cases, but not be annoyed by tons of INFO log statements.

    0 讨论(0)
  • 2020-12-03 21:17

    (Just for sake of the complete answer)

    You could try to do it by setting log4j.xml file also. Just log entire package as you like and log the FifthClass differently.

    <logger name="com.example">
        <level value="INFO"/>
    </logger>
    
    <logger name="com.example.FifthClass">
        <level value="FATAL"/>
    </logger>
    
    0 讨论(0)
提交回复
热议问题