ApPeNdeRrEf may look visually as confusing as a-p-p-e-n-d-e-r-r-e-f r-e-f, but that is not the point.
I think the rule "config files are case-insensite" is much a more intuitive rule than "all hyphens are stripped from attribute and element names". To me, the "-ref" extension in the <appender-ref> element is a nice, visually distinct indicator that this element points to another element in the configuration. To me, these pointer elements/attributes are special elements and attributes and we actually *lose* something if we bend over backwards to make them look consistent with other elements. It's okay if they look different because they *are* different. If we prefer not to have aliases then I propose we revert back the appender-ref and error-ref elements to the hyphen version. I think they are better names. On Sat, Aug 17, 2013 at 3:48 PM, Gary Gregory <garydgreg...@gmail.com>wrote: > Dancing angels and pin heads: > > Yep, the patch I provided allows for <a-p-p-e-n-d-e-r-r-e-f > r-e-f="Console"/> but the point is that is allows <appender-ref > ref="Console> > > But! the current code also allows <ApPeNdeRrEf ref="Console/> > > How is that any better/worse, more/less confusing? > > BTW, are attributes also case-insensitive? <ApPeNdeRrEf ReF="Console/> > > Gary > > > > On Sat, Aug 17, 2013 at 2:38 AM, Ralph Goers > <ralph.go...@dslextreme.com>wrote: > >> OK. In general I guess I agree with your philosophy. However, I >> consider stripping/ignoring hyphens bad because then <a-p-p-e-n-d-e-r-r-e-f >> r-e-f="Console"/> becomes valid. The ONLY reason I wanted aliases is >> because I really believe users who are used to the "other" logging >> frameworks are constantly going to screw up and do <appender-ref >> ref="abc"/> instead of <AppenderRef ref="abc"/> simply because they are >> used to it. However, if my choice is between stripping or leaving it the >> way it is then I vote to leave it the way it is. Again, I just detest the >> idea of stripping hyphens. >> >> Ralph >> >> On Aug 16, 2013, at 11:28 PM, Nick Williams wrote: >> >> Alright. Time to chime in I suppose, since I'm being quoted now. :-) >> >> I like consistency. I like the same rules to apply to all parts of the >> configuration. For example: >> >> - If we decide that an element should be PascalCase, then they should ALL >> be PascalCase. >> - If we decide that an attribute should be camelCase, then they should >> ALL be camelCase. >> - If we decide that an element and/or attribute should be >> case-insensitive, then ALL elements AND attributes should be >> case-insensitive. >> - If we decide that an element and/or attribute should allow hyphens >> between words, then ALL elements AND attributes should allow hyphens >> between words. >> >> This last one is a key point here. Providing aliases would not be a sane >> way to do this, because what if a developer added an attribute but forgot >> to create a hyphenated alias? Suddenly, all elements and attributes would >> allow hyphenation—except that one attribute. This is a consistency failure. >> >> I'm not arguing against aliases, necessarily. I just think they're a Bad >> way to solve the hyphenation dispute (yes, capital Bad). With the >> hyphenation issue solved otherwise (either by disallowing hyphens or by >> stripping hyphens automatically), I no longer see a compelling need for >> aliases. The addition of aliases also makes the task for users of extending >> Log4j / writing plugins for Log4j more confusing. >> >> If I had to chose what we were going to do here, these are my >> preferences/priorities, in order from most important to least important: >> >> - Consistency, consistency, consistency. >> - A strict schema that must be validated against for the Log4j >> configuration to work. No case insensitivity, no stripping of hyphens. >> - All lowercase, hyphenated elements AND attributes. No PascalCase, no >> camelCase. >> - camelCase elements AND camelCase attributes. >> - PascalCase elements AND PascalCase attributes. >> >> Nick >> >> On Aug 17, 2013, at 1:14 AM, Ralph Goers wrote: >> >> On Aug 10 Nick said "I actually really like hyphenated attributes, but I >> like consistency better.". However, that doesn't imply that he is going to >> like allowing '-' to appear anywhere and be stripped out. Providing >> aliases would be a more sane way to do that. >> >> Ralph >> >> >> >> On Aug 16, 2013, at 10:57 PM, Gary Gregory wrote: >> >> On Sat, Aug 17, 2013 at 1:44 AM, Ralph Goers >> <ralph.go...@dslextreme.com>wrote: >> >>> So far yours is the only vote for that. Anyone else? >>> >> >> Whomever else mentioned it in the first place! ;) I can't recall who... >> but it's 2am here... >> G >> >>> >>> Ralph >>> >>> On Aug 16, 2013, at 10:19 PM, Gary Gregory wrote: >>> >>> I think we should do both. >>> >>> Gary >>> >>> On Aug 16, 2013, at 21:59, Ralph Goers <ralph.go...@dslextreme.com> >>> wrote: >>> >>> Easily done, assuming we have consensus. I am hearing two options: >>> 1) strip '-' characters from element names. >>> 2) allow aliases for element names. >>> >>> These are not mutually exclusive. I see no reason not to go ahead with >>> number 2 and we can continue to discuss where else number 1 might be used. >>> >>> Ralph >>> >>> On Aug 16, 2013, at 2:21 PM, Remko Popma wrote: >>> >>> Ralph, >>> Don't forget the error-ref attribute for AsyncAppender. >>> >>> Remko >>> >>> On Saturday, August 17, 2013, Ralph Goers wrote: >>> >>>> I'm not in favor of just allowing arbitrary '-' characters wherever >>>> users want. But allowing aliases makes it possible to allow for variations. >>>> I already have this working. >>>> >>>> Ralph >>>> >>>> >>>> On Aug 16, 2013, at 11:39 AM, Gary Gregory wrote: >>>> >>>> On Fri, Aug 16, 2013 at 2:38 PM, Gary Gregory >>>> <garydgreg...@gmail.com>wrote: >>>> >>>> On Fri, Aug 16, 2013 at 2:28 PM, Scott Deboy <scott.de...@gmail.com>wrote: >>>> >>>> I'm not sure if this ship has fully sailed, but I'd prefer to see us >>>> stick with he dash format due to folks being familiar with it from >>>> log4j 1. >>>> >>>> >>>> That's a thin argument IMO considering you'll have to read the version >>>> 2 config docs to get off the ground anyway, even if you know your way >>>> around version 1. >>>> >>>> >>>> And this is also an opportunity to make our config code even fancier by >>>> normalizing '-' chars ;) >>>> >>>> Gary >>>> >>>> >>>> >>>> Gary >>>> >>>> >>>> >>>> Scott >>>> >>>> On 8/16/13, Gary Gregory <garydgreg...@gmail.com> wrote: >>>> > On Fri, Aug 16, 2013 at 1:13 PM, Ralph Goers >>>> > <ralph.go...@dslextreme.com>wrote: >>>> > >>>> >> I'm adding an aliases attribute to the Plugin annotation. >>>> >> >>>> > >>>> > Hold on to your horses ;) >>>> > >>>> > Another way to look at this is that our config parsing that is already >>>> > case-insensitive could be augmented to strip out "-"s, no aliases >>>> needed. >>>> > >>>> > As someone pointed out here, some folks like-to-talk-like-this (see >>>> JPA). >>>> > >>>> > Gary >>>> > >>>> > >>>> >> >>>> >> On Aug 16, 2013, at 6:38 AM, Remko Popma wrote: >>>> >> >>>> >> Maybe we just need another plugin for the 2nd name then. Subclass or >>>> >> delegate? >>>> >> >>>> >> On Friday, August 16, 2013, Ralph Goers wrote: >>>> >> >>>> >>> I had the same thought. People switching from log4j 1 or logback >>>> will >>>> >>> probably make that mistake a lot. Plus this breaks virtually >>>> everyone >>>> >>> currently using Log4j 2. The problem is that I don't think there is >>>> >>> currently a way for a plugin to have 2 names. >>>> >>> >>>> >>> Sent from my iPad >>>> >>> >>>> >>> On Aug 16, 2013, at 6:03 AM, Remko Popma <remko.po...@gmail.com> >>>> wrote: >>>> >>> >>>> >>> Would it be an idea to support both appender-ref and appenderRef >>>> >>> attributes? >>>> >>> >>>> >>> >>>> >>> >>>> >>> On Thu, Aug 15, 2013 at 10:22 AM, Gary Gregory >>>> >>> <garydgreg...@gmail.com>wrote: >>>> >>> >>>> >>> I never thought that Log4J 2 configuration files should be backward >>>> >>> compatible with version 1, and even less so with a different >>>> product. >>>> >>> >>>> >>> Gary >>>> >>> >>>> >>> >>>> >>> On Wed, Aug 14, 2013 at 8:51 PM, Ralph Goers >>>> >>> <ralph.go...@dslextreme.com>wrote: >>>> >>> >>>> >>> Now that I see this it kind of scares me. Log4j 1.x and Logback >>>> both >>>> >>> use >>>> >>> appender-ref. Anyone using Log4j 2 will now be broken. >>>> >>> >>>> >>> On Aug 14, 2013, at 1:05 PM, ggreg...@apache.org wrote: >>>> >>> >>>> >>> > Modified: >>>> >>> logging/log4j/log4j2/trunk/core/src/test/resources/log4j2-config.xml >>>> >>> > URL: >>>> >>> >>>> <http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/core/src/test/resources/log4j2-config.xml?rev=1514021&r1=1514020&r2=1514021&view=diff> >>>> >>>> >>> >>> >> >> >> -- >> 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 >