I'm fine with just the factory methods too. Sent from my iPhone
> On 2014/06/16, at 9:44, Scott Deboy <scott.de...@gmail.com> wrote: > > +1 > >> On Jun 15, 2014 4:05 PM, "Ralph Goers" <ralph.go...@dslextreme.com> wrote: >> Do we need the builders? As I said, I prefer only one way for creating >> plugins. >> >> Ralph >> >>> On Jun 15, 2014, at 2:49 PM, Remko Popma <remko.po...@gmail.com> wrote: >>> >>> I see. I agree that the original format is much nicer. >>> >>> Matt, do you think you can achieve this with the builders? >>> >>> Sent from my iPhone >>> >>>> On 2014/06/16, at 1:29, Ralph Goers <ralph.go...@dslextreme.com> wrote: >>>> >>>> While you improved some of the existing messages, you really didm’t >>>> address what I wanted fixed. The previous debug logs would have had >>>> messages similar to: >>>> >>>> Calling createLayout on class >>>> org.apache.logging.log4j.core.layout.PatternLayout for element >>>> PatternLayout with params(pattern="%d{HH:mm:ss.SSS} [%t] %-5level >>>> %logger{36} - %msg%n", >>>> Configuration(D:\rista\eclipsekws\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\log4j2.0-test\WEB-INF\classes\test-log4j.xml), >>>> null, charset="null", alwaysWriteExceptions="null") >>>> >>>> Calling createAppender on class >>>> org.apache.logging.log4j.core.appender.ConsoleAppender for element Console >>>> with params(PatternLayout(%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - >>>> %msg%n), null, target="SYSTEM_OUT", name="console", follow="null", >>>> ignoreExceptions="null") >>>> >>>> Calling createAppenderRef on class >>>> org.apache.logging.log4j.core.config.AppenderRef for element appender-ref >>>> with params(ref="console", level="null", null) >>>> 2013-09-20 15:06:55,749 DEBUG Calling createLogger on class >>>> org.apache.logging.log4j.core.config.LoggerConfig$RootLogger for element >>>> root with params(additivity="null", level="error", includeLocation="null", >>>> AppenderRef={console}, Properties={}, >>>> Configuration(D:\rista\eclipsekws\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\log4j2.0-test\WEB-INF\classes\test-log4j.xml), >>>> null) >>>> >>>> The current log emits stuff like: >>>> >>>> 2014-06-15 09:07:19,432 DEBUG Building Plugin[name=layout, >>>> class=org.apache.logging.log4j.core.layout.XmlLayout]. Searching for >>>> builder factory method... >>>> 2014-06-15 09:07:19,435 DEBUG No builder factory method found in class >>>> org.apache.logging.log4j.core.layout.XmlLayout. >>>> 2014-06-15 09:07:19,435 DEBUG Still building Plugin[name=layout, >>>> class=org.apache.logging.log4j.core.layout.XmlLayout]. Searching for >>>> factory method... >>>> 2014-06-15 09:07:19,436 DEBUG Found factory method [createLayout]: public >>>> static org.apache.logging.log4j.core.layout.XmlLayout >>>> org.apache.logging.log4j.core.layout.XmlLayout.createLayout(boolean,boolean,boolean,boolean,java.nio.charset.Charset). >>>> 2014-06-15 09:07:19,436 DEBUG Generating parameters for factory method >>>> [createLayout]... >>>> 2014-06-15 09:07:19,456 DEBUG Attribute(locationInfo="false") - no value >>>> specified, using default. >>>> 2014-06-15 09:07:19,456 DEBUG Attribute(properties="false") - no value >>>> specified, using default. >>>> 2014-06-15 09:07:19,457 DEBUG Attribute(complete="true") - no value >>>> specified, using default. >>>> 2014-06-15 09:07:19,457 DEBUG Attribute(compact="false") - no value >>>> specified, using default. >>>> 2014-06-15 09:07:19,457 DEBUG Attribute(charset="UTF-8") - no value >>>> specified, using default. >>>> 2014-06-15 09:07:19,587 DEBUG Built Plugin[name=layout] OK from factory >>>> method. >>>> 2014-06-15 09:07:19,588 DEBUG Building Plugin[name=appender, >>>> class=org.apache.logging.log4j.core.appender.FileAppender]. Searching for >>>> builder factory method... >>>> 2014-06-15 09:07:19,588 DEBUG No builder factory method found in class >>>> org.apache.logging.log4j.core.appender.FileAppender. >>>> 2014-06-15 09:07:19,589 DEBUG Still building Plugin[name=appender, >>>> class=org.apache.logging.log4j.core.appender.FileAppender]. Searching for >>>> factory method... >>>> 2014-06-15 09:07:19,589 DEBUG Found factory method [createAppender]: >>>> public static org.apache.logging.log4j.core.appender.FileAppender >>>> org.apache.logging.log4j.core.appender.FileAppender.createAppender(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,org.apache.logging.log4j.core.Layout,org.apache.logging.log4j.core.Filter,java.lang.String,java.lang.String,org.apache.logging.log4j.core.config.Configuration). >>>> 2014-06-15 09:07:19,589 DEBUG Generating parameters for factory method >>>> [createAppender]... >>>> 2014-06-15 09:07:19,595 DEBUG >>>> Attribute(fileName="target/XmlCompleteFileAppenderTest.log") >>>> 2014-06-15 09:07:19,596 DEBUG Attribute(append="false") >>>> 2014-06-15 09:07:19,596 DEBUG Attribute(locking="null") >>>> 2014-06-15 09:07:19,596 DEBUG Attribute(name="XmlFile") >>>> 2014-06-15 09:07:19,597 DEBUG Attribute(immediateFlush="false") >>>> 2014-06-15 09:07:19,597 DEBUG Attribute(ignoreExceptions="null") >>>> 2014-06-15 09:07:19,597 DEBUG Attribute(bufferedIo="null") >>>> 2014-06-15 09:07:19,598 DEBUG Attribute(bufferSize="null") >>>> 2014-06-15 09:07:19,598 DEBUG >>>> XMLLayout(org.apache.logging.log4j.core.layout.XmlLayout@5eef9f84) >>>> 2014-06-15 09:07:19,598 DEBUG Attribute(advertise="null") >>>> 2014-06-15 09:07:19,599 DEBUG Attribute(advertiseUri="null") >>>> 2014-06-15 09:07:19,599 DEBUG >>>> Configuration(/Users/rgoers/projects/apache/logging/log4j/log4j2/trunk/log4j-core/target/test-classes/XmlCompleteFileAppenderTest.xml) >>>> 2014-06-15 09:07:19,601 DEBUG Starting FileManager >>>> target/XmlCompleteFileAppenderTest.log >>>> >>>> The previous format was a lot more compact as it essentially showed you >>>> the parameters being passed to the factory method in one line while >>>> identifying the class it came from and the configuration element that >>>> triggered it. The new log emits that info as individual lines with a few >>>> messages that are just noise. >>>> >>>> Ralph >>>> >>>> >>>> >>>> >>>>> On Jun 14, 2014, at 10:11 PM, Remko Popma <remko.po...@gmail.com> wrote: >>>>> >>>>> I've done some work on this, there may be more places to improve, I >>>>> mainly focused on PluginBuilder and PluginAttributeVisitor. >>>>> >>>>> >>>>> >>>>>> On Thu, Jun 12, 2014 at 2:09 AM, Matt Sicker <boa...@gmail.com> wrote: >>>>>> Yeah, I liked the prettier logging format. I was planning to add it back >>>>>> in, but it appears as though I completely forgot about it! The "new" >>>>>> format was a quick placeholder. I'll try and work on that this week. >>>>>> >>>>>> >>>>>>> On 10 June 2014 19:47, Gary Gregory <garydgreg...@gmail.com> wrote: >>>>>>> Maybe Matt can shed a light on this? >>>>>>> >>>>>>> Gary >>>>>>> >>>>>>> >>>>>>>> On Tue, Jun 10, 2014 at 8:43 PM, Ralph Goers <rgo...@apache.org> wrote: >>>>>>>> I don't know exactly what I would be vetoing. I have no problem with >>>>>>>> some of the refactoring. The commit(s) that changed the logging >>>>>>>> probably happened weeks ago and I am just noticing now. >>>>>>>> >>>>>>>> But yes, I want the logging aspect of the changes reverted back to >>>>>>>> what was previously being done. >>>>>>>> >>>>>>>> Sent from my iPad >>>>>>>> >>>>>>>>> On Jun 10, 2014, at 5:34 PM, Gary Gregory <garydgreg...@gmail.com> >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>> Well, for Log4j Plugins, one way to configure should be plenty. I am >>>>>>>>> OK with the factory method pattern, while it makes for some long >>>>>>>>> signatures, I like that it is all in one place. >>>>>>>>> >>>>>>>>> May I suggest a simple "-1" reply on the ML on the changes to >>>>>>>>> logging? Do you feel a VETO is inappropriate here? >>>>>>>>> >>>>>>>>> Gary >>>>>>>>> >>>>>>>>> >>>>>>>>>> On Tue, Jun 10, 2014 at 7:57 PM, Ralph Goers <rgo...@apache.org> >>>>>>>>>> wrote: >>>>>>>>>> I think the discussion was not on its own thread. I thought there >>>>>>>>>> was agreement that there should be only one way to configure >>>>>>>>>> plugins. I prefer the factory method simply because it would be a >>>>>>>>>> whole lot of effort to convert everything to a builder and I just >>>>>>>>>> don't think the benefit is worth the effort. >>>>>>>>>> >>>>>>>>>> I spent a lot of time making the debug output "nice" and easily >>>>>>>>>> understandable so I am a bit upset that it was tossed and replaced >>>>>>>>>> with what you see below. >>>>>>>>>> >>>>>>>>>> Ralph >>>>>>>>>> >>>>>>>>>> Sent from my iPad >>>>>>>>>> >>>>>>>>>>> On Jun 10, 2014, at 4:31 PM, Gary Gregory <garydgreg...@gmail.com> >>>>>>>>>>> wrote: >>>>>>>>>>> >>>>>>>>>>>> On Tue, Jun 10, 2014 at 7:11 PM, Ralph Goers >>>>>>>>>>>> <ralph.go...@dslextreme.com> wrote: >>>>>>>>>>>> I am working on a new Appender and am noticing that the debug >>>>>>>>>>>> output is now far less useful than it used to be. I used to see >>>>>>>>>>>> the factory method being invoked with all of its parameters very >>>>>>>>>>>> nicely formatted. Now I see >>>>>>>>>>>> >>>>>>>>>>>> 2014-06-10 16:02:37,858 DEBUG No compatible method annotated with >>>>>>>>>>>> interface >>>>>>>>>>>> org.apache.logging.log4j.core.config.plugins.PluginBuilderFactory >>>>>>>>>>>> found in class class >>>>>>>>>>>> org.apache.logging.log4j.web.appender.ServletAppender. >>>>>>>>>>>> 2014-06-10 16:02:37,858 DEBUG Found factory method class >>>>>>>>>>>> org.apache.logging.log4j.web.appender.ServletAppender.public >>>>>>>>>>>> static org.apache.logging.log4j.web.appender.ServletAppender >>>>>>>>>>>> org.apache.logging.log4j.web.appender.ServletAppender.createAppender(org.apache.logging.log4j.core.Layout,org.apache.logging.log4j.core.Filter,java.lang.String,java.lang.String). >>>>>>>>>>>> 2014-06-10 16:02:37,864 DEBUG Constructing plugin of type class >>>>>>>>>>>> org.apache.logging.log4j.web.appender.ServletAppender >>>>>>>>>>>> 2014-06-10 16:02:37,864 DEBUG PatternLayout(%m%n) >>>>>>>>>>>> 2014-06-10 16:02:37,864 DEBUG Constructing plugin of type class >>>>>>>>>>>> org.apache.logging.log4j.web.appender.ServletAppender >>>>>>>>>>>> 2014-06-10 16:02:37,865 DEBUG Constructing plugin of type class >>>>>>>>>>>> org.apache.logging.log4j.web.appender.ServletAppender >>>>>>>>>>>> 2014-06-10 16:02:37,865 DEBUG Attribute(name="Servlet") >>>>>>>>>>>> 2014-06-10 16:02:37,865 DEBUG Constructing plugin of type class >>>>>>>>>>>> org.apache.logging.log4j.web.appender.ServletAppender >>>>>>>>>>>> 2014-06-10 16:02:37,865 DEBUG Null string given to convert. Using >>>>>>>>>>>> default [null]. >>>>>>>>>>>> 2014-06-10 16:02:37,866 DEBUG Attribute(ignoreExceptions="null") >>>>>>>>>>>> >>>>>>>>>>>> This is far more verbose, repetitive, and is nowhere near as clear >>>>>>>>>>>> as it used to be. >>>>>>>>>>>> >>>>>>>>>>>> Can you please get the logging output back to the old format? >>>>>>>>>>>> >>>>>>>>>>>> Also, can we change PatternLayout back to a factory and remove the >>>>>>>>>>>> message about no builder factory being present? >>>>>>>>>>> >>>>>>>>>>> I think we need to decide how many ways there are to configure a >>>>>>>>>>> plugin: factory, builder, and whatever else we've been discussing. >>>>>>>>>>> This is getting quite confusing! >>>>>>>>>>> >>>>>>>>>>> I thought we had a thread going on the topic already... >>>>>>>>>>> >>>>>>>>>>> Gary >>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> Ralph >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org >>>>>>>>>>> Java Persistence with Hibernate, Second Edition >>>>>>>>>>> JUnit in Action, Second Edition >>>>>>>>>>> Spring Batch in Action >>>>>>>>>>> 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 >>>>>>>>> JUnit in Action, Second Edition >>>>>>>>> Spring Batch in Action >>>>>>>>> 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 >>>>>>> JUnit in Action, Second Edition >>>>>>> Spring Batch in Action >>>>>>> Blog: http://garygregory.wordpress.com >>>>>>> Home: http://garygregory.com/ >>>>>>> Tweet! http://twitter.com/GaryGregory >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Matt Sicker <boa...@gmail.com>