You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by "Robert Veitch (JIRA)" <ji...@apache.org> on 2015/10/28 22:05:27 UTC

[jira] [Created] (LOG4J2-1184) NullPointerException when attempting to configure logging in custom ShutdownCallbackRegistry

Robert Veitch created LOG4J2-1184:
-------------------------------------

             Summary: NullPointerException when attempting to configure logging in custom ShutdownCallbackRegistry
                 Key: LOG4J2-1184
                 URL: https://issues.apache.org/jira/browse/LOG4J2-1184
             Project: Log4j 2
          Issue Type: Bug
    Affects Versions: 2.2
         Environment: OSX, Ubuntu
            Reporter: Robert Veitch
            Priority: Minor


I have a custom ShutdownCallbackRegistry implementation, which I've configured to be instantiated via:
-Dlog4j.shutdownCallbackRegistry=<my_implementation>

If I configure a logger in the normal way, either via a static or instance variable, I get a NullPointerException on startup. Something like:

private static final Logger logger = LoggerFactory.getLogger(MyClass.class);

I think this is probably because the configured registry instance gets created prior to the log4j subsystem responsible for loggers. My workaround is to define the logger variable without assigning it:

private static final Logger logger;

And then assigning it as the first line of my run method:

public void run() {
logger = LoggerFactory.getLogger(MyClass.class);
// shutdown registry code
}

But if possible, it seems like the instantiation order should be reworked so that implementers of a custom registry do not have to do this.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org