Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 2.0-rc1
    • Fix Version/s: 2.0-rc2
    • Component/s: Appenders
    • Labels:
      None

      Description

      Our production environment suffers from

      java.lang.NullPointerException at org.apache.logging.log4j.core.async.AsyncLogger.log(AsyncLogger.java:273)
          at org.apache.logging.log4j.spi.AbstractLoggerWrapper.log(AbstractLoggerWrapper.java:121)
          at org.apache.logging.log4j.spi.AbstractLogger.info(AbstractLogger.java:1006) 
          at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:873) 
          at org.springframework.context.support.AbstractApplicationContext$1.run(AbstractApplicationContext.java:809)
      

      It looks like something in our app is still logging despite the AsyncLogger having been stopped (and the disruptor field set to null).

      The logger could print out a more informative message in this situation.

        Activity

        Hide
        Remko Popma added a comment -

        The consensus on the mailing list was to not throw an exception but log it to the status logger.

        Fixed in revision 1595507.
        Please verify and close.

        Show
        Remko Popma added a comment - The consensus on the mailing list was to not throw an exception but log it to the status logger. Fixed in revision 1595507. Please verify and close.
        Hide
        Remko Popma added a comment -

        What is the expected behaviour if an application tries to use a Logger after the logging subsystem has been shut down?

        I see two options: throwing an exception (perhaps an IllegalStateException with a clearer message) or ignoring the call (perhaps log a StatusLogger.fatal("Ignoring log event: log4j has been shut down") message). Users may never see the status logger message, but that is a minor issue.

        The main question is, is it okay for a Logger to throw an exception in this case or not?

        Show
        Remko Popma added a comment - What is the expected behaviour if an application tries to use a Logger after the logging subsystem has been shut down? I see two options: throwing an exception (perhaps an IllegalStateException with a clearer message) or ignoring the call (perhaps log a StatusLogger.fatal("Ignoring log event: log4j has been shut down") message). Users may never see the status logger message, but that is a minor issue. The main question is, is it okay for a Logger to throw an exception in this case or not?

          People

          • Assignee:
            Remko Popma
            Reporter:
            mck
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development