logging-log4j-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From yong...@agfa.com
Subject Re: User-based logger level
Date Tue, 12 Jun 2012 02:59:00 GMT
Thanks for all the nice replies. It's a good starting point for me. 

We may need a bit more than out-of-the-box MDCFilter or 
DynamicThresholdFilter, in that for different ejbs different users get the 
DEBUG level. For example, for ejb1, user A gets DEBUG while user B gets 
WARNING; for ejb2, user B gets DEBUG and user A get WARNING. My 
understanding is that, for MDCFilter/DynamicThresholdFilter a user always 
gets the same effective level for all loggers

Of course, we can extend those filters to consider also the logger name. 
However, we are a bit afraid of its performance overhead. The problem is 
that, we cannot easily put logger names in a Map as what 
DynamicThresholdFilter does, because the logger name can be a package name 
(so we need to check if this name is a prefix of the fully qualified class 
name of an EJB).

Any good ideas? Am I missing something obvious?

Kind Regards,

Yong

ceki <ceki@qos.ch> wrote on 06/11/2012 11:59:32 PM:

> From: ceki <ceki@qos.ch>
> To: Log4J Users List <log4j-user@logging.apache.org>
> Date: 06/12/2012 12:00 AM
> Subject: Re: User-based logger level
> 
> 
> Yours is a text-book requirement:
> 
>   http://logback.qos.ch/reasonsToSwitch.html#filters
> 
> See the docs on MDCFilter at [1].
> 
> [1]  http://logback.qos.ch/manual/filters.html#TurboFilter
> 
> -- 
> Ceki
> http://twitter.com/#!/ceki
> 
> On 11.06.2012 11:55, yong.li@agfa.com wrote:
> > Dear all,
> >
> > We're about to implement a logging strategy that for different users
> > different effective logger level are used. In particular, we are doing
> > EJB, and we have already pushed user info onto MDC to implement this
> > strategy.
> >
> > By default, the system will run using the following example logger 
levels
> > for all users:
> > root = INFO
> > com.my.ejb1=WARNING
> > com.my.ejb2=INFO // different ejbs may have different default levels
> > ...
> >
> > When a system setting is enabled at runtime, we want to change
> > com.my.ejb1=DEBUG, but only for a few selected users. That is, if user 
A
> > invokes ejb1, all ejb1 log messages with level>= DEBUG will be logged,
> > while if another user B invokes ejb1, it uses the default setting, and
> > only messages with level>= WARNING will be logged. (it also honors the
> > logger hierarchy, that is if we want to change the level for a 
package,
> > all ejbs in that package behave in the same way)
> >
> > We will do this on our production systems, so performance is critical.
> >
> > What would be a good way to achieve this?
> >
> > Kind Regards,
> >
> > Yong
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
> For additional commands, e-mail: log4j-user-help@logging.apache.org
> 

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message