On Sat, Jan 18, 2014 at 6:21 PM, Nick Williams <
nicho...@nicholaswilliams.net> wrote:

> I actually think Ralph's is a decently elegant solution:
>
> <logger name="org.apache.foo" level="info" markers="CONFIG,INIT">
>
> Except that I suggest that this should mean (instead of AND-ing it all
> together):
>
>     if ( level == LEVEL || marker == CONFIG || marker == INIT )
>         log( );
>
> N
>
> Sent from the Hawaiian airlines terminal after 10 hours of traveling and 6
> more ahead of me, so please ignore delusional and delirious replies and
> frequent typos
>

Hawaiian = no sympathy from the peanut gallery ;)

G

>
> On Jan 18, 2014, at 3:05 PM, Scott Deboy wrote:
>
> Expression filter from log4j 1 already supports all of this and hasn't had
> to change for years. Markers could be supported as a property with almost
> zero work.
> On Jan 18, 2014 2:52 PM, "Gary Gregory" <garydgreg...@gmail.com> wrote:
>
>> On Sat, Jan 18, 2014 at 5:26 PM, Ralph Goers 
>> <ralph.go...@dslextreme.com>wrote:
>>
>>> We could address that by allowing a Markers attribute in all the same
>>> places a level attribute is supported.  The only issue with that is that
>>> this would be very limited since there are more ways to use Markers.  For
>>> example specifying
>>>
>>> <logger name=“org.apache.foo” level=“info” markers=“CONFIG,INIT”>
>>>
>>> would mean that only events that meet the level criteria and have a
>>> CONFIG or INIT marker would be logged.
>>>
>>> On the other hand we could do
>>>
>>> <logger name=“org.apache.foo” level=“info” expression=“Marker == CONFIG
>>> || Marker == INIT”>
>>>
>>> All this would require is someone to implement an ExpressionFilter and
>>> then modifying logger to accept the expression attribute as a short hand
>>> way of calling it.
>>>
>>
>> Bleh, why not use JavaScript, it's baked in the JRE. Otherwise, this
>> language risks to grow...
>>
>> Gary
>>
>>
>>>
>>> Ralph
>>>
>>> On Jan 18, 2014, at 2:12 PM, Nicholas Williams <
>>> nicho...@nicholaswilliams.net> wrote:
>>>
>>> I prefer to avoid markers whenever possible. Unlike levels, markers
>>> require some amount of configuration to get them to log/not log when
>>> desired. They don't "just work."
>>>
>>> N
>>>
>>> Sent from my iPhone from LAX baggage claim, so please forgive brief
>>> replies and frequent typos
>>>
>>> On Jan 18, 2014, at 14:01, Matt Sicker <boa...@gmail.com> wrote:
>>>
>>> Markers all around! No logging levels, just allow markers to have
>>> ordinals or bit-flags to allow more flexible filtering.
>>>
>>> Sorry, nothing useful to add beyond wild speculations.
>>>
>>>
>>> On 18 January 2014 15:15, Ralph Goers <ralph.go...@dslextreme.com>wrote:
>>>
>>>> Actually, here is how I would prefer it.  Let’s see if it makes sense
>>>> to anyone else.
>>>>
>>>> FATAL - Hopefully, almost never logged because the system is crashing.
>>>> ERROR - Something affecting the usability of the system occurred.
>>>> WARN - Something not nice, but probably recoverable occurred. May lead
>>>> to errors later.
>>>> INFO - Something of general interest, but not necessarily significant.
>>>> DIAG or DIAGNOSTIC - Events that can be used by operations or users to
>>>> diagnose problems in the system.
>>>> DEBUG - Used by developers for internal debugging.
>>>> VERBOSE - Used to log minute details of the system.  As its dictionary
>>>> definition implies this is extremely chatty.
>>>> TRACE - Adds tracing of method entry and exit, possibly object creation
>>>> and initialization.
>>>>
>>>> I believe these should be enough for anybody.  I still think CONFIG is
>>>> a Marker at the INFO level. The advantage of being a Marker is that it can
>>>> be enabled regardless of its level and enabling it doesn’t imply enabling
>>>> other levels.
>>>>
>>>> Ralph
>>>>
>>>>
>>>> On Jan 18, 2014, at 1:03 PM, Gary Gregory <garydgreg...@gmail.com>
>>>> wrote:
>>>>
>>>> On Sat, Jan 18, 2014 at 2:21 PM, Ralph Goers <
>>>> ralph.go...@dslextreme.com> wrote:
>>>>
>>>>> STEP?  No clue what that means.
>>>>>
>>>>> Gary, if you want to implement VERBOSE between INFO and DEBUG I’m OK
>>>>> with that, but what will that map to in SLF4J, etc.  DEBUG?
>>>>>
>>>>
>>>> Sounds OK, I can see it as debug data, but for users, instead of
>>>> developers.
>>>>
>>>> Gary
>>>>
>>>>>
>>>>> And yes, something on the web site should document our recommended
>>>>> usage for levels and markers.
>>>>>
>>>>> Ralph
>>>>>
>>>>>
>>>>>
>>>>> On Jan 18, 2014, at 10:53 AM, Gary Gregory <garydgreg...@gmail.com>
>>>>> wrote:
>>>>>
>>>>> Ah, my view of VERBOSE is that it is _more_ information, hence INFO <
>>>>> VERBOSE < DEBUG; while it sounds like Ralphs sees it as more DEBUG data.
>>>>>
>>>>>  For me DEBUG data is going to be already verbose, even more than
>>>>> 'verbose'.
>>>>>
>>>>> What is interesting (to me) is that DEBUG is often misused based on
>>>>> this basic mix: debug messages can be for users *and/or* for developers,
>>>>> there is no distinction in the audience.
>>>>>
>>>>> For example, as a user, I want to get data to help me debug my
>>>>> configuration and my process. As a developer, I want to debug the code.
>>>>> These can be two very different set of data.
>>>>>
>>>>> But we do not have DEBUG_USER and DEBUG_DEV levels. I would see INFO
>>>>> next to VERBOSE as useful to users. Then DEBUG and TRACE useful for
>>>>> developers. Each app can have its convention of course, but it would be
>>>>> nice to have the distinction available through levels for developers to 
>>>>> use.
>>>>>
>>>>> I see TRACE as method entry and exit type of logging, *very* *low*
>>>>> level stuff.
>>>>>
>>>>> We could also have both (ducking for projectiles):
>>>>>
>>>>> INFO
>>>>> VERBOSE
>>>>> DEBUG
>>>>> STEP
>>>>> TRACE
>>>>>
>>>>> Gary
>>>>>
>>>>>
>>>>> On Sat, Jan 18, 2014 at 12:47 PM, Ralph Goers <
>>>>> ralph.go...@dslextreme.com> wrote:
>>>>>
>>>>>> Oops. I just noticed you proposed that VERBOSE be between INFO and
>>>>>> DEBUG. Now that I don’t understand. My experience is that VERBOSE is
>>>>>> usually more detailed than debug messages, not less.
>>>>>>
>>>>>> Ralph
>>>>>>
>>>>>> On Jan 18, 2014, at 9:44 AM, Ralph Goers <ralph.go...@dslextreme.com>
>>>>>> wrote:
>>>>>>
>>>>>> I understand the need for CONFIG.  However it isn’t clear to me
>>>>>> whether it belongs between INFO and WARN or DEBUG and INFO.  That is
>>>>>> because it typically would be used to log configuration during startup.
>>>>>>  That doesn’t necessarily imply that you would then want to see all INFO
>>>>>> messages as well.  Due to that, it would make more sense to me to make a
>>>>>> CONFIG marker.
>>>>>>
>>>>>> I don’t really understand the point of FINE or FINER.
>>>>>>
>>>>>> On the other hand, VERBOSE does make a bit more sense, but I’m
>>>>>> struggling with how that is any different than TRACE.  I guess the idea 
>>>>>> is
>>>>>> that TRACE is for control flow (entry, exit) and VERBOSE is for more
>>>>>> detailed debug messages?  I suppose I can go along with that argument, 
>>>>>> but
>>>>>> again one could just as easily create a VERBOSE marker and attach it to
>>>>>> either TRACE or DEBUG.  I guess I wouldn’t object if VERBOSE was added 
>>>>>> as a
>>>>>> Level but I’m not really convinced it is necessary either.
>>>>>>
>>>>>> Ralph
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Jan 18, 2014, at 7:08 AM, Remko Popma <remko.po...@gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>> I've always liked Ralph's argument that Markers give users much more
>>>>>> flexibility than any predefined Levels.
>>>>>> I would prefer to stick to the log4j/slf4j level names.
>>>>>>
>>>>>>
>>>>>> On Sat, Jan 18, 2014 at 10:32 PM, Gary Gregory <
>>>>>> garydgreg...@gmail.com> wrote:
>>>>>>
>>>>>>> Interesting, I have been wanting a VERBOSE level better INFO and
>>>>>>> DEBUG.
>>>>>>>
>>>>>>> See
>>>>>>> http://mail-archives.apache.org/mod_mbox/logging-log4j-dev/201310.mbox/%3CCACZkXPxNwYbn__CbXUqFhC7e3Q=kee94j+udhe8+6jiubcz...@mail.gmail.com%3E
>>>>>>>
>>>>>>> You'll have to dig a little in that ref to find my proposal, sorry
>>>>>>> I'm on my phone ATM.
>>>>>>>
>>>>>>> It sounds like we see logging configuration messages differently
>>>>>>> though. I do not like the name CONFIG because it does not sound like a
>>>>>>> level to me. Otoh, many command lines have a verbose AND a debug 
>>>>>>> switch. So
>>>>>>> it makes sense to me too have corresponding levels.
>>>>>>>
>>>>>>> Gary
>>>>>>>
>>>>>>>
>>>>>>> -------- Original message --------
>>>>>>> From: Nick Williams
>>>>>>> Date:01/17/2014 23:50 (GMT-05:00)
>>>>>>> To: Log4J Developers List
>>>>>>> Subject: Web Issues, Logging Levels, and GA
>>>>>>>
>>>>>>> Wanted to update y'all. As you know, I've been very absent lately
>>>>>>> due to the book consuming every minute of my free time. I know I haven't
>>>>>>> been contributing my due, and for that please accept my sincerest
>>>>>>> apologies. The book is finally done (goes on sale next month!) and I can
>>>>>>> get back to regular life. I'm going to be out of town for the next week 
>>>>>>> on
>>>>>>> a much-needed vacation with very limited access to email. I'll be back 
>>>>>>> the
>>>>>>> weekend of January 25-26, and that weekend I will be spending almost the
>>>>>>> entire time finally dealing with the 8-10 web application-related bugs.
>>>>>>> After that, I don't see any encumbrances to releasing 
>>>>>>> 2.0.0.GA<http://2.0.0.ga/>
>>>>>>> .
>>>>>>>
>>>>>>> Except...
>>>>>>>
>>>>>>> Logging Levels. We kinda-sorta talked about this a few months ago,
>>>>>>> and a few months before that, and a few months before that, but we never
>>>>>>> actually DID anything about it. It's clear by now that my "extendable 
>>>>>>> enum"
>>>>>>> proposal (that would be a drop-in replacement for and binary compatible
>>>>>>> with the current Level enum) is not going to be accepted. Absent any 
>>>>>>> other
>>>>>>> proposals, I suggest we add the following new levels before GA:
>>>>>>>
>>>>>>> CONFIG - Between INFO and WARN, mapped to INFO for bridges to other
>>>>>>> frameworks that don't have an equivalent level
>>>>>>>
>>>>>>> FINE - Between DEBUG and TRACE, mapped to TRACE for bridges to other
>>>>>>> frameworks that don't have an equivalent level
>>>>>>>
>>>>>>> I'll let y'all chat about that over the next week. ;-)
>>>>>>>
>>>>>>> Be back soon,
>>>>>>>
>>>>>>> Nick
>>>>>>> ---------------------------------------------------------------------
>>>>>>> To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org
>>>>>>> For additional commands, e-mail: log4j-dev-h...@logging.apache.org
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> 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
>>>>
>>>>
>>>>
>>>
>>>
>>> --
>>> Matt Sicker <boa...@gmail.com>
>>>
>>>
>>>
>>
>>
>> --
>> 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

Reply via email to