logging-log4net-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ron Grabowski <rongrabow...@yahoo.com>
Subject Re: Configuration of Levels
Date Wed, 06 Jul 2005 18:56:56 GMT
You may have already found this the archives, but this is a post where
Nicko talks about reassigning log levels:

http://tinyurl.com/c6p94
http://www.mail-archive.com/log4net-user%40logging.apache.org/msg01678.html

"
In 1.2.9 changes were made to the LogImpl class to support rebinding
levels in the config file at runtime. This is not the most obvious
feature, but it is actually possible, although not advisable, to swap
the DEBUG and ERROR levels at runtime. The ReloadLevels method was
added
to allow the LogImpl to keep up with any changes made to levels during
configuration. The TraceLogImpl overrides the ReloadLevels method to
add
the TRACE level, while this is correct behaviour, it is not necessary
if
you don't intend to reconfigure your levels at runtime.
"

I don't know how to rebind the default levels at runtime. Becuase
you're wanting to add additional levels too, it may be easier to write
your own LogManager and use the following class as your ILog
implementation (I may have accidently switched the order of the
levels):

// untested
public class MyLogImpl : LoggerWrapperImpl, ILog
{
 private readonly static Type ThisDeclaringType = typeof(LogImpl);

 // 100, 200, 300, etc. for more flexibility ???
 private Level all = new Level(0, "ALL");
 private Level info = new Level(1, "VERBOSE");
 private Level debug = new Level(2, "DEBUG");
 private Level trace = new Level(3, "TRACE");
 private Level warn = new Level(4, "WARN");
 private Level error = new Level(5, "ERROR");
 private Level fatal = new Level(6, "FATAL");
 private Level info = new Level(7, "INFO");
 private Level off = new Level(8, "OFF");

 public MyLogImpl(ILogger logger) : base(logger)
 {
  // caution: this implementation does not listen for config changes
 }

 virtual public void Verbose(object message) 
 {
  Logger.Log(ThisDeclaringType, verbose, message, null);
 }

 virtual public void Debug(object message) 
 {
  Logger.Log(ThisDeclaringType, debug, message, null);
 }

 virtual public void Trace(object message) 
 {
  Logger.Log(ThisDeclaringType, trace, message, null);
 }

 // snip

 virtual public bool IsVerboseEnabled
 {
  get { return Logger.IsEnabledFor(verbose); }
 }

 virtual public bool IsDebugEnabled
 {
  get { return Logger.IsEnabledFor(debug); }
 }

 virtual public bool IsTraceEnabled
 {
  get { return Logger.IsEnabledFor(trace); }
 }

 // snip

}

--- Hollywood <hollywood@thzero.com> wrote:

> And before it's asked, here is the *exact* order of logging that is
> in the 
> requirements I am working with:
> 
> ALL
> VERBOSE
> DEBUG
> TRACE
> WARN
> ERROR
> FATAL
> INFO
> OFF
> 
> which differsn from the standard listed in the log4net documentation
> of:
> 
> ALL
> DEBUG
> INFO
> WARN
> ERROR
> FATAL
> OFF
> 
> ----- Original Message ----- 
> From: "Ron Grabowski" <rongrabowski@yahoo.com>
> To: "Log4NET User" <log4net-user@logging.apache.org>
> Sent: Wednesday, July 06, 2005 12:11 PM
> Subject: Re: Configuration of Levels
> 
> 
> >I can't think of a good reason why someone would want to make WARN
> more
> > serious than FATAL. Wouldn't that make it difficult for future
> > maintainers?
> >
> > Perhaps you could write your own Logger implementation and have it
> > internally mix-up values as you see fit:
> >
> > DEBUG -> DEBUG
> > WARN -> INFO
> > ERROR -> WARN
> > FATAL -> ERROR
> > INFO -> FATAL
> >
> > --- Hollywood <hollywood@thzero.com> wrote:
> >
> >> I'll clarify my original question:
> >>
> >>  Has the configuration of logging Levels ORDER been implemented
> yet
> >> or is it
> >> still static, i.e. being able to say that the logging level is
> >> VERBOSE,
> >> DEBUG, WARN, ERROR, FATAL, TRACE, INFO rather that what has been
> >> hardcoded
> >> into the log4* system?
> >>
> >> ----- Original Message ----- 
> >> From: "Ron Grabowski" <rongrabowski@yahoo.com>
> >> To: "Log4NET User" <log4net-user@logging.apache.org>
> >> Sent: Wednesday, July 06, 2005 11:18 AM
> >> Subject: Re: Configuration of Levels
> >>
> >>
> >> > There has been example code in CVS since January 2004:
> >> >
> >> > http://tinyurl.com/9atgc
> >> >
> >>
> >
>
http://cvs.apache.org/viewcvs.cgi/logging-log4net/examples/net/1.0/Extensibility/TraceLogApp/cs/src/TraceLogApp.cs?rev=1.3&view=log
> >> >
> >> > I think it was possible with 1.2.0 beta 8 which means its
> existed
> >> since
> >> > at least 2003.
> >> >
> >> > --- Hollywood <hollywood@thzero.com> wrote:
> >> >
> >> >> Has the configuration of logging Levels been implemented yet?
> Or
> >> is
> >> >> it still
> >> >> static?
> >> >>
> >> >>
> >> >
> >> >
> >> >
> >>
> >>
> >
> >
> > 
> 
> 


Mime
View raw message