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
> 

Reply via email to