No your not. Except calling a pre class with a set of properties will be more flexible.
On 9/29/12, Ralph Goers <[email protected]> wrote: > I'm not sure I understand what you are saying, but if I do I am not worried > about how the properties could be located. It would be easy for LogManager > to do a System.getResource("log4j2.properties") and then require the > application to have that somewhere on the classpath if they want to > configure this. I'm just not certain if that is the best way to do it or > not. I'm not sure I'd like to require a system property to be set to enable > using the properties. If we do that they they might as well have to specify > the items themselves as system properties. > > Am I missing what you are suggesting? > > Ralph > > On Sep 28, 2012, at 10:30 PM, Tushar Kapila wrote: > >> Java has a pre main. Like wise have another file xml or properties for >> log4j but default null & disabled. Have to set system property to >> enable it. >> >> On 9/29/12, Ralph Goers <[email protected]> wrote: >>> With just using a rank the test impl would be lower than the core impl >>> and >>> so the core impl would be chosen and yes. it would work. >>> >>> The user already has a way to specify the factory they want with a >>> system >>> property, but I'd prefer something better than that. It might be nice >>> to >>> allow a log4j2.properties file that can specify the LoggerContextFactory >>> and >>> ContextSelector and possibly other things. I'm not really sure about >>> this - >>> just looking for better ideas. >>> >>> Ralph >>> >>> >>> On Sep 28, 2012, at 3:06 PM, Gary Gregory wrote: >>> >>>> OK, so back to: >>>> >>>> "I think a better way to do this is to add one more piece of >>>> information >>>> to the meta-data - a rank/weight as is being done with the >>>> configuration >>>> factory. Then we will pick the one with the highest rank." >>>> >>>> So I really want my impl, I scan the system and edit some config file >>>> and >>>> use a higher rank? Seems for advanced users but workable. >>>> >>>> In the case I have today, the test impl would have a lower rank than >>>> the >>>> stock impl? Then it would work within an IDE. Check? >>>> >>>> Gary >>>> >>>> On Fri, Sep 28, 2012 at 5:55 PM, Ralph Goers >>>> <[email protected]> >>>> wrote: >>>> While it is consistent I wouldn't call it deterministic. For example, >>>> JBoss 5 has an SLF4J implementation in common/lib. Your application may >>>> have one in WEB-INF/lib. One of them will always win but how is it >>>> deterministic which one it will be? What if it isn't the one you want? >>>> What can be done to override it? >>>> >>>> Ralph >>>> >>>> >>>> On Sep 28, 2012, at 1:01 PM, Gary Gregory wrote: >>>> >>>>> Agree but doesn't the current code use the classpath order? If not, >>>>> could >>>>> it? That would be deterministic, just like I can place a jar at the >>>>> front >>>>> of the CP to override one or more classes. >>>>> >>>>> Gary >>>>> >>>>> On Fri, Sep 28, 2012 at 3:51 PM, Ralph Goers >>>>> <[email protected]> >>>>> wrote: >>>>> The problem I have is that it isn't deterministic and I very much >>>>> dislike >>>>> that. SLF4J is that way today and it is annoying that you can't >>>>> guarantee the winner. >>>>> >>>>> Ralph >>>>> >>>>> >>>>> >>>>> On Sep 28, 2012, at 11:21 AM, Gary Gregory wrote: >>>>> >>>>>> What about just picking the first one like in the example below (note >>>>>> the new error message) >>>>>> >>>>>> Gary >>>>>> >>>>>> On Sep 28, 2012, at 14:06, Ralph Goers <[email protected]> >>>>>> wrote: >>>>>> >>>>>>> That is interesting. So Eclipse is seeing both the API's test >>>>>>> factory >>>>>>> and the real implementation. I guess that makes sense. I would >>>>>>> probably have the same problem in IntelliJ except that I never run >>>>>>> tests for anything in my IDE but always run Maven from the command >>>>>>> line >>>>>>> - even to debug. >>>>>>> >>>>>>> At one point I considered allowing multiple implementations, but >>>>>>> passing events to two logging implementations seems like a >>>>>>> performance >>>>>>> nightmare. Also, the Log4j 2 API isn't really intended as a >>>>>>> competitor >>>>>>> or replacement for SLF4J. >>>>>>> >>>>>>> I think a better way to do this is to add one more piece of >>>>>>> information >>>>>>> to the meta-data - a rank/weight as is being done with the >>>>>>> configuration factory. Then we will pick the one with the highest >>>>>>> rank. >>>>>>> >>>>>>> Ralph >>>>>>> >>>>>>> On Sep 28, 2012, at 10:51 AM, Gary Gregory wrote: >>>>>>> >>>>>>>> Hi All, >>>>>>>> >>>>>>>> I am using Eclipse as my IDE and when I run >>>>>>>> org.apache.logging.log4j.core.BasicLoggingTest I get an NPE because >>>>>>>> org.apache.logging.log4j.LogManager.factory is null. It is null >>>>>>>> because when the static initializer runs it picks up 2 factories >>>>>>>> instead of one: >>>>>>>> >>>>>>>> [org.apache.logging.log4j.core.impl.Log4jContextFactory@39c8c1, >>>>>>>> org.apache.logging.log4j.SimpleLoggerContextFactory@1ab2b55]. >>>>>>>> >>>>>>>> Can we be more lenient? >>>>>>>> >>>>>>>> Instead of: >>>>>>>> >>>>>>>> if (factories.size() != 1) { >>>>>>>> logger.fatal("Unable to locate a logging >>>>>>>> implementation"); >>>>>>>> } else { >>>>>>>> factory = factories.get(0); >>>>>>>> } >>>>>>>> >>>>>>>> How about: >>>>>>>> >>>>>>>> if (factories.size() != 1) { >>>>>>>> logger.error("Expected a single logging >>>>>>>> implementation, not {}, picking the first: {}", factories.size(), >>>>>>>> factories.get(0)); >>>>>>>> } >>>>>>>> factory = factories.get(0); >>>>>>>> >>>>>>>> ? >>>>>>>> >>>>>>>> -- >>>>>>>> E-Mail: [email protected] | [email protected] >>>>>>>> JUnit in Action, 2nd Ed: http://bit.ly/ECvg0 >>>>>>>> Spring Batch in Action: http://bit.ly/bqpbCK >>>>>>>> Blog: http://garygregory.wordpress.com >>>>>>>> Home: http://garygregory.com/ >>>>>>>> Tweet! http://twitter.com/GaryGregory >>>>>>> >>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> E-Mail: [email protected] | [email protected] >>>>> JUnit in Action, 2nd Ed: http://bit.ly/ECvg0 >>>>> Spring Batch in Action: http://bit.ly/bqpbCK >>>>> Blog: http://garygregory.wordpress.com >>>>> Home: http://garygregory.com/ >>>>> Tweet! http://twitter.com/GaryGregory >>>> >>>> >>>> >>>> >>>> -- >>>> E-Mail: [email protected] | [email protected] >>>> JUnit in Action, 2nd Ed: http://bit.ly/ECvg0 >>>> Spring Batch in Action: http://bit.ly/bqpbCK >>>> Blog: http://garygregory.wordpress.com >>>> Home: http://garygregory.com/ >>>> Tweet! http://twitter.com/GaryGregory >>> >>> >> >> -- >> Sent from my mobile device >> >> Regards >> Tushar Kapila >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [email protected] >> For additional commands, e-mail: [email protected] >> > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > > -- Sent from my mobile device Regards Tushar Kapila --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
