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: >>>>>> >>> >>>> >> >> >> >> >> -- >> 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 >