If you do not see the message "Using ShutdownCallbackRegistry
YOUR_CLASS_INSTANCE" then that is not good.

Can you try setting the system properties from the command line instead of
programmatically? I wonder if Log4j is initialized _before_ your
setProperty calls.

Gary

On Mon, Jun 22, 2015 at 11:37 AM, Charles Allen <
[email protected]> wrote:

> No, oddly enough.
>
> The following options are being set:
>
> properties.setProperty("log4j.shutdownCallbackRegistry", 
> "io.druid.common.config.Log4jShutdown");
> properties.setProperty("log4j.shutdownHookEnabled", "true");
>
>
> I know it is getting called though and I have the following at the start
> and end of my log when my main program:
>
>
> 2015-06-22 18:32:38,543 INFO Registered Log4j as the
> java.util.logging.LogManager.
> 2015-06-22 18:32:38,698 DEBUG Registering MBean
> org.apache.logging.log4j2:type=1793467229
> 2015-06-22 18:32:38,705 DEBUG Registering MBean
> org.apache.logging.log4j2:type=1793467229,component=StatusLogger
> 2015-06-22 18:32:38,707 DEBUG Registering MBean
> org.apache.logging.log4j2:type=1793467229,component=ContextSelector
> 2015-06-22 18:32:38,710 DEBUG Registering MBean
> org.apache.logging.log4j2:type=1793467229,component=Loggers,name=
> 2015-06-22 18:32:38,713 DEBUG Registering MBean
> org.apache.logging.log4j2:type=1793467229,component=Appenders,name=Console
> 2015-06-22 18:32:38,714 DEBUG Reconfiguration complete for
> context[name=1793467229] at null
> (org.apache.logging.log4j.core.LoggerContext@6bfecf32) with optional
> ClassLoader: null
> 2015-06-22 18:32:38,714 DEBUG Shutdown hook enabled. Registering a new one.
> 2015-06-22 18:32:38,716 DEBUG LoggerContext[name=1793467229,
> org.apache.logging.log4j.core.LoggerContext@6bfecf32] started OK.
> 2015-06-22 18:32:40,327 DEBUG Using default SystemClock for timestamps
>
> ......
>
> 2015-06-22T18:33:28,999 INFO [Thread-52]
> io.druid.initialization.Log4jShutterDownerModule - Shutting down log4j
> callbacks
> 2015-06-22 18:33:29,000 DEBUG Stopping LoggerContext[name=1793467229,
> org.apache.logging.log4j.core.LoggerContext@6bfecf32]
> 2015-06-22 18:33:29,000 DEBUG Stopping LoggerContext[name=1793467229,
> org.apache.logging.log4j.core.LoggerContext@6bfecf32]...
> 2015-06-22 18:33:29,000 DEBUG Unregistering MBean
> org.apache.logging.log4j2:type=1793467229
> 2015-06-22 18:33:29,001 DEBUG Unregistering MBean
> org.apache.logging.log4j2:type=1793467229,component=StatusLogger
> 2015-06-22 18:33:29,001 DEBUG Unregistering MBean
> org.apache.logging.log4j2:type=1793467229,component=ContextSelector
> 2015-06-22 18:33:29,001 DEBUG Unregistering MBean
> org.apache.logging.log4j2:type=1793467229,component=Loggers,name=
> 2015-06-22 18:33:29,002 DEBUG Unregistering MBean
> org.apache.logging.log4j2:type=1793467229,component=Appenders,name=Console
> 2015-06-22 18:33:29,003 DEBUG Stopped
> XmlConfiguration[location=/Users/charlesallen/src/druid/common/target/classes/log4j2.xml]
> OK
> 2015-06-22 18:33:29,004 DEBUG Stopped LoggerContext[name=1793467229,
> org.apache.logging.log4j.core.LoggerContext@6bfecf32]...
> 2015-06-22 18:33:29,004 DEBUG Stopping LoggerContext[name=Default,
> org.apache.logging.log4j.core.LoggerContext@dbef480]
> 2015-06-22 18:33:29,004 DEBUG Stopping LoggerContext[name=Default,
> org.apache.logging.log4j.core.LoggerContext@dbef480]...
> 2015-06-22 18:33:29,005 DEBUG Stopped
> XmlConfiguration[location=/Users/charlesallen/src/druid/common/target/classes/log4j2.xml]
> OK
> 2015-06-22 18:33:29,005 DEBUG Stopped LoggerContext[name=Default,
> org.apache.logging.log4j.core.LoggerContext@dbef480]...
>
>
>
>
> On Sat, Jun 20, 2015 at 9:04 AM Gary Gregory <[email protected]>
> wrote:
>
>> If you turn on the Log4j status logger (<Configuration status="DEBUG">),
>> do you see the debug log message
>> from 
>> org.apache.logging.log4j.core.impl.Log4jContextFactory.Log4jContextFactory(ContextSelector,
>> ShutdownCallbackRegistry):
>>
>> Using ShutdownCallbackRegistry YOUR_CLASS_INSTANCE
>>
>> Or do you see an exception logged
>> from 
>> org.apache.logging.log4j.core.impl.Log4jContextFactory.createShutdownCallbackRegistry()?
>>
>> Gary
>>
>> On Wed, Jun 17, 2015 at 9:13 AM, Charles Allen <
>> [email protected]> wrote:
>>
>>> I'm currently writing a lifecycle bridge between Druid.io's logging and
>>> log4j2's logging to make sure logs during normal shutdown hooks are
>>> persisted correctly. I cannot rely on JVM shutdown hook firing order but
>>> have a "functional" ShutdownCallbackRegistry.
>>>
>>> Is there a preferred way to get the instanced ShutdownCallbackRegistry
>>> at 
>>> org.apache.logging.log4j.core.impl.Log4jContextFactory#shutdownCallbackRegistry
>>> ?
>>>
>>> I have set a class via the log4j.shutdownCallbackRegistry property, but
>>> cannot seem to actually get the instance used. This leaves me to either use
>>> reflection https://github.com/druid-io/druid/pull/1387  or static
>>> methods https://github.com/DjDCH/Log4j-StaticShutdown
>>>
>>
>>
>>
>> --
>> E-Mail: [email protected] | [email protected]
>> Java Persistence with Hibernate, Second Edition
>> <http://www.manning.com/bauer3/>
>> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/>
>> Spring Batch in Action <http://www.manning.com/templier/>
>> Blog: http://garygregory.wordpress.com
>> Home: http://garygregory.com/
>> Tweet! http://twitter.com/GaryGregory
>>
>


-- 
E-Mail: [email protected] | [email protected]
Java Persistence with Hibernate, Second Edition
<http://www.manning.com/bauer3/>
JUnit in Action, Second Edition <http://www.manning.com/tahchiev/>
Spring Batch in Action <http://www.manning.com/templier/>
Blog: http://garygregory.wordpress.com
Home: http://garygregory.com/
Tweet! http://twitter.com/GaryGregory

Reply via email to