logging-log4j-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Clément Guillaume <cguilla...@hotpads.com>
Subject Re: Custom ConfigurationFactory not loaded
Date Tue, 05 Aug 2014 01:02:31 GMT
My issue came from the the way I ran my application and the fact that lo4j2
use an annotation processor.
I'm running my application (and my tests) from eclipse. So I have to

   - Enable the option "Enable annotation processing" (Java Compiler ->
   Annotation Processing)
   - Add log4j-core.jar in the Factory Path (Java Compiler -> Annotation
   Processing -> Factory Path)

I think everything is working fine now!

Thank you everyone!

Clément


On Sat, Aug 2, 2014 at 5:50 AM, Ralph Goers <rgoers@apache.org> wrote:

> It should work if the annotation processor is being invoked.  See if your
> application is having a Log4j2Plugins.dat file being generated and included
> in your jar.
>
> Sent from my iPad
>
> > On Aug 1, 2014, at 1:06 PM, Clément Guillaume <cguillaume@hotpads.com>
> wrote:
> >
> > PluginManager.addPackage(“com.myorg.mypackage”) works with trunk ! But
> for
> > me it is almost the same as setting the system property.
> > I would love that it automatically find my ConfigurationFactory. Is it a
> > bug?
> >
> > Clément
> >
> >
> >> On Fri, Aug 1, 2014 at 11:02 AM, Remko Popma <remko.popma@gmail.com>
> wrote:
> >>
> >> The packages attribute in configuration (and the corresponding
> >> PluginManager.addPackage method) does not work in 2.0.
> >>
> >> This has been fixed in trunk and the fix will be in the upcoming 2.0.1
> >> release.
> >> Can you try with trunk?
> >>
> >>
> >> On Sat, Aug 2, 2014 at 2:05 AM, Clément Guillaume <
> cguillaume@hotpads.com>
> >> wrote:
> >>
> >>> The fact is that the method getSupportedTypes() is never called ! (It's
> >>> return a custom extension: ".myorg")
> >>> I'm using 2.0. And even a call to
> >>> PluginManager.addPackage(“com.myorg.mypackage”)
> >>> doesn't works.
> >>>
> >>> Clément
> >>>
> >>>
> >>> On Thu, Jul 31, 2014 at 10:31 PM, Ralph Goers <
> >> ralph.goers@dslextreme.com>
> >>> wrote:
> >>>
> >>>> It also occurs to me that the plugin manager may not be finding the
> >>>> plugin.  If you are using 2.0 then I believe the annotation processor
> >>>> should register the factory as a plugin automatically. If you are
> using
> >>> an
> >>>> older release you might have been required to call
> >>>> PluginManager.addPackage(“com.myorg.mypackage”) to have the plugin
> >>> manager
> >>>> search for your plugin.
> >>>>
> >>>> Ralph
> >>>>
> >>>> On Jul 31, 2014, at 10:26 PM, Ralph Goers <ralph.goers@dslextreme.com
> >
> >>>> wrote:
> >>>>
> >>>>> Your annotations are correct. However, in the code snippet below
you
> >>>> don’t show what getSupportedTypes() returns. The generic
> >>>> ConfigurationFactory inspects all the ConfigurationFactory plugins
> >> using
> >>>> the order to determine which should be inspected first, second, etc.
> >> It
> >>>> calls getSupportedTypes to find out what file extensions the
> >>>> ConfigurationFactory handles. If the provided configuration file
> >> matches
> >>>> one of the file extensions than that factory will be used.  “*”
is
> used
> >>> as
> >>>> a wildcard to specify that it handles any file extension (which is
> what
> >>> the
> >>>> XMLConfigurationFactory does).  However, with an Order of 10 if you
> >>>> specified a “*” I believe your factory would have to handle XML,
JSON
> >> and
> >>>> YAML configurations.
> >>>>>
> >>>>> I would suggest having getSupportedTypes return something like “.cfg”
> >>>> and then having your configuration files end with .cfg.
> >>>>>
> >>>>> Ralph
> >>>>>
> >>>>> On Jul 31, 2014, at 6:18 PM, Clément Guillaume <
> >> cguillaume@hotpads.com
> >>>>
> >>>> wrote:
> >>>>>
> >>>>>> Hi,
> >>>>>>
> >>>>>> I'm trying to use a custom ConfigurationFactory. I created and
> >>>> annotated it
> >>>>>> with a @Plugin and an @Order like this:
> >>>>>>
> >>>>>> @Plugin(category = "ConfigurationFactory", name =
> >>>>>> "StartupConfigurationFactory")
> >>>>>> @Order(10)
> >>>>>> public class StartupConfigurationFactory extends
> >> ConfigurationFactory{
> >>>>>> ...
> >>>>>> }
> >>>>>>
> >>>>>> But it is never loaded (none of the 2 methods are called).
> >>>>>>
> >>>>>> If I specify the system property "log4j.configurationFactory"
with
> >> the
> >>>> name
> >>>>>> of my class before creating a logger, my factory is successfully
> >>> loaded.
> >>>>>>
> >>>>>> Did I made a mistake declaring my ConfigurationFactory ?
> >>>>>>
> >>>>>> Clément
> >>>>
> >>>>
> >>>> ---------------------------------------------------------------------
> >>>> To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
> >>>> For additional commands, e-mail: log4j-user-help@logging.apache.org
> >>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
> For additional commands, e-mail: log4j-user-help@logging.apache.org
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message