log4j logging twice

前端 未结 9 1604
眼角桃花
眼角桃花 2021-02-04 23:02

I am using log4j to log error and other system information. but come of the info logged twice at INFO level.

public static void main(final String... args) throws         


        
相关标签:
9条回答
  • 2021-02-04 23:53

    Agree with atlantis.

    log4j.rootCategory=INFO, console
    log4j.logger.org.hibernate=INFO
    

    The above property settings will cause double logging.

    However adding

    log4j.additivity.org.hibernate=false
    

    fixed the issue.

    Check out page 62 of this book. http://books.google.com/books?id=hZBimlxiyAcC&printsec=frontcover#v=onepage&q&f=false

    0 讨论(0)
  • 2021-02-04 23:54

    Just simply add

    logger.setadditivity(false);
    

    to your code (Reference).

    We are having double results in the console, it's because appenders are not singletons, they are additive. Meaning, a category inherits all the appenders from its ancestors (by default). If we add an appender to a category and it writes to the same underlying stream (console, same file etc.) as some other appender, the same log message will appear twice (or more) in the log. In addition, if two categories in a hierarchy are configured to use the same appender name, Log4j will write twice to that appender. Configured for that category

    0 讨论(0)
  • 2021-02-04 23:57

    If you can run the program with a Java debugger, put a breakpoint in the program where one of these double logging calls happen.

    Examine the logger object in the debugger. If it is an org.apache.log4j.Logger (v 1.2.x) then it may have an AppenderAttachableImpl. You can query the AppenderAttachableImpl for the appender list.

    If you find more than 1 appender, this could be the problem - and a clue to fixing it.

    0 讨论(0)
提交回复
热议问题