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 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. >>>>>>> >>>>>>> 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 >>>>> JUnit in Action, Second Edition >>>>> Spring Batch in Action >>>>> 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 >>>> JUnit in Action, Second Edition >>>> Spring Batch in Action >>>> 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 > JUnit in Action, Second Edition > Spring Batch in Action > Blog: http://garygregory.wordpress.com > Home: http://garygregory.com/ > Tweet! http://twitter.com/GaryGregory