A ZOMBIE_APOCALYPSE Level would be EPIC! ;-)

N

On Jan 23, 2014, at 1:31 AM, Christian Grobmeier wrote:

> Maybe:
> 
> ZOMBIE_APOCALYPSE > APOCALYPSE > CATASTROPHE > EMERGENCY > FATAL > ...
> 
> On 23 Jan 2014, at 3:56, Gary Gregory wrote:
> 
>> But that is not as high as APOCALYPSE right?
>> 
>> Gary
>> 
>> -------- Original message --------
>> From: Matt Sicker <boa...@gmail.com>
>> Date:01/22/2014  21:43  (GMT-05:00)
>> To: Log4J Developers List <log4j-dev@logging.apache.org>
>> Subject: Re: Web Issues, Logging Levels, and GA
>> 
>> I think we should use the CATASTROPHE logging level.
>> 
>> 
>> On 22 January 2014 17:38, Remko Popma <remko.po...@gmail.com> wrote:
>> Looks like we're in a tricky spot...
>> 
>> I count four people in favor of keeping the current levels who don't want to 
>> add levels (Paul, Christian, Matt and myself),
>> two people who really want to add levels (Gary and Nick)
>> and two people who are not pushing for new levels but don't mind the change 
>> (Scott and Ralph).
>> 
>> I don't think of adding new levels as a compromise, as it would only satisfy 
>> a few of us.
>> 
>> Can we try finding a way that would satisfy all parties?
>> Why don't we think a little more about finding some mechanism that allows 
>> users to add custom levels that are *as easy or nearly as easy to use as the 
>> pre-defined levels*?
>> 
>> That mechanism can be anything (markers, extensible enum, an interface, 
>> something else?), I am open to ideas.
>> This is an engineering problem, let's use our engineering skills (instead of 
>> our debate skills :-).)
>> 
>> Let's think about this more, with open minds, before rushing into a solution 
>> that many have reservations about.
>> 
>> 
>> 
>> On Thu, Jan 23, 2014 at 6:07 AM, Paul Benedict <pbened...@apache.org> wrote:
>> Yes, I know. It is a big change but it is also one that's necessary to 
>> support custom logging levels that are enums.
>> 
>> 
>> On Wed, Jan 22, 2014 at 3:04 PM, Ralph Goers <ralph.go...@dslextreme.com> 
>> wrote:
>> Paul,
>> 
>> Take a look at the Logger, LoggerConfig and Lo4jLogEvent classes and 
>> LogEvent interface in log4j-core.  Then look at the Filter interface and the 
>> ThresholdFilter implementation.  Looking at those classes you will see that 
>> the change you are proposing has a much larger impact than what you are 
>> thinking.  Since the custom levels would not be part of the enum all the 
>> code would have to be changed to use the new Interface you are proposing, 
>> not the Level enum.
>> 
>> Ralph
>> 
>> 
>> On Jan 22, 2014, at 12:37 PM, Paul Benedict <pbened...@apache.org> wrote:
>> 
>> Ralph,
>> 
>> Perhaps you're misunderstanding or I was unclear (let's say it's the latter).
>> 
>> The interface is only so you can allow custom log levels as an enum. The 
>> client code could still use the enums you provided today. All that's 
>> changing is the API signatures to accept the interface -- which conveniently 
>> all the enums would implement. As I said, FATAL/ERROR/INFO/WARN/DEBUG/TRACE 
>> would implement the interface.
>> 
>> It's worth considering this because I think we're about to pollute log4j 
>> with logging levels that really don't belong in the public api. These are 
>> definitely custom things people should implement themselves.
>> 
>> Paul
>> 
>> 
>> On Wed, Jan 22, 2014 at 12:33 AM, Ralph Goers <ralph.go...@dslextreme.com> 
>> wrote:
>> First, I assume you meant to code “implements LogLevelStrength” instead of 
>> “extends LogLevelStrength” since an enum already implicitly extends Enum and 
>> a Class (or Enum) can’t extend an Interface. 
>> 
>> Second, doing this would mean that the Log4j 2 core would have to be 
>> modified to never use the Level enum and only use the Interface, except 
>> perhaps in ThresholdFilter which can really only be configured with one of 
>> the Level enum values. Not being able to use Level as a method parameter and 
>> field in the LogEvent makes its value as an enum minimal. Only being able to 
>> use Level values in the ThresholdFilter means anyone with a custom Level has 
>> to write their own custom Level Filter.
>> 
>> I think providing the extra levels is a fair compromise.  
>> 
>> Ralph
>> 
>> 
>> On Jan 21, 2014, at 8:50 AM, Paul Benedict <pbened...@apache.org> wrote:
>> 
>> Or if you really want to get fancy (!!!), don't make the log4j API accept an 
>> Level, but an interface that each logging level Enum object implements. Then 
>> programmers can use enums. Example:
>> 
>> 
>> public interface LogLevelStrength {
>>   int getStrength();
>> }
>> 
>> public enum Level extends LogLevelStrength {
>>   FATAL() {
>>     public int getStrength() { return 600; }
>>  }
>>  ... 
>> }
>> 
>> public enum MyCustomLevel extends LogLevelStrength {
>>   DIAGNOSTIC() {
>>     public int getStrength() { return 250; }
>>  }
>>  ... 
>> }
>> 
>> 
>> 
>> On Tue, Jan 21, 2014 at 10:45 AM, Paul Benedict <pbened...@apache.org> wrote:
>> It won't be possible with an enum, yes, but we should have a way to allow 
>> extensions. For example, if we publically document the integer level of the 
>> enums (separated by 100), then we can provide an overload that accepts an 
>> integer. That's how you can allow people to slide in their extensions. 
>> Philospohy: enums for the standard, ints for the custom programmer.
>> 
>> Paul
>> 
>> 
>> On Tue, Jan 21, 2014 at 10:42 AM, Gary Gregory <garydgreg...@gmail.com> 
>> wrote:
>> On Tue, Jan 21, 2014 at 11:33 AM, Paul Benedict <pbened...@apache.org> wrote:
>> On Tue, Jan 21, 2014 at 10:25 AM, Ralph Goers <ralph.go...@dslextreme.com> 
>> wrote:
>> 
>> I tend to agree that there is ambiguity between TRACE and VERBOSE, but I 
>> have no problem adding it if it means end users will have more flexibility 
>> with little cost.
>> 
>> 
>> I think this is meaningless flexibility. It smells of adding a feature 
>> without a good reason. Imagine the conversations people will have to explain 
>> the difference between TRACE and VERBOSE. I can't think of any good 
>> universal justification for its use that demands an addition to log4j.
>> 
>> If you do not like it, do not use it ;) 
>> 
>> This is best reserved for a personal extension.
>> 
>> Which is not possible since Level is an enum, hence this discussion before 
>> the API freezes.
>> 
>> Gary
>> 
>> 
>> 
>> 
>> 
>> -- 
>> 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
>> 
>> 
>> 
>> -- 
>> Cheers,
>> Paul
>> 
>> 
>> 
>> -- 
>> Cheers,
>> Paul
>> 
>> 
>> 
>> 
>> -- 
>> Cheers,
>> Paul
>> 
>> 
>> 
>> 
>> -- 
>> Cheers,
>> Paul
>> 
>> 
>> 
>> 
>> -- 
>> Matt Sicker <boa...@gmail.com>
> 
> 
> ---
> http://www.grobmeier.de
> The Zen Programmer: http://bit.ly/12lC6DL
> @grobmeier
> GPG: 0xA5CC90DB
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org
> For additional commands, e-mail: log4j-dev-h...@logging.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-dev-h...@logging.apache.org

Reply via email to