FYI: The getter in is Git master now. On Mon, Jun 22, 2015 at 1:50 PM, Gary Gregory <garydgreg...@gmail.com> wrote:
> I'd like to hear from Ralph and/or Remko on this. I'll add the getter > anyway. It seems to me that if you pass in the object in a ctor and it is > set in an ivar, it should be accessible via a getter. > > Gary > > > On Mon, Jun 22, 2015 at 1:42 PM, Charles Allen < > charles.al...@metamarkets.com> wrote: > >> That indeed would be one solution for my use case. >> >> If there is some other recommended method (like programmatically create >> the context factory and not let auto-creation do it) that is "more >> preferred" than simply having a getter on the factory then I would love to >> know about it. >> >> On Mon, Jun 22, 2015 at 1:34 PM Gary Gregory <garydgreg...@gmail.com> >> wrote: >> >>> On Mon, Jun 22, 2015 at 12:44 PM, Charles Allen < >>> charles.al...@metamarkets.com> wrote: >>> >>>> org.apache.logging.log4j.core.impl.Log4jContextFactory#createShutdownCallbackRegistry >>>> creates the instance of interest, but the resulting instance is not >>>> get-able without using reflection? >>>> >>> >>> That's true, createShutdownCallbackRegistry is called from >>> Log4jContextFactory constructions and not accessible from outside the class. >>> >>> You'd like a >>> >>> public ShutdownCallbackRegistry getShutdownCallbackRegistry() { >>> return shutdownCallbackRegistry; >>> } >>> >>> >>> added to this class? >>> >>> Gary >>> >>> >>>> On Mon, Jun 22, 2015 at 12:36 PM Charles Allen < >>>> charles.al...@metamarkets.com> wrote: >>>> >>>>> No, it is still not showing up. For the record, this is using 2.2 >>>>> Which seems odd because if I break on Log4jContextFactory.java:88 then >>>>> the shutdownCallbackRegistry is the correct custom instance if the >>>>> properties are set programmatically or at command line, but it simply does >>>>> not print out the debug message >>>>> >>>>> >>>>> On Mon, Jun 22, 2015 at 12:11 PM Gary Gregory <garydgreg...@gmail.com> >>>>> wrote: >>>>> >>>>>> 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 < >>>>>> charles.al...@metamarkets.com> 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 <garydgreg...@gmail.com> >>>>>>> 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 < >>>>>>>> charles.al...@metamarkets.com> 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: garydgreg...@gmail.com | ggreg...@apache.org >>>>>>>> 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: garydgreg...@gmail.com | ggreg...@apache.org >>>>>> 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: garydgreg...@gmail.com | ggreg...@apache.org >>> 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: garydgreg...@gmail.com | ggreg...@apache.org > 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: garydgreg...@gmail.com | ggreg...@apache.org 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