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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to