[
https://issues.apache.org/jira/browse/LOG4J2-1184?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14980465#comment-14980465
]
Ralph Goers commented on LOG4J2-1184:
-------------------------------------
Can you change
{code}
private static Logger logger =
LogManager.getLogger(CustomShutdownCallbackRegistry.class);
{code}
to
{code}
private static Logger logger = StatusLogger.getLogger();
{code}
What you are building is essentially a Log4j component and all Log4j components
use the status logger for logging. This is because Log4j components need to log
while the logging system is being initialized or otherwise manipulated. Most
likely, that is what is happening here.
> 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]