logging-log4net-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Philip Nelson <panmanp...@yahoo.com>
Subject Re: Programatically changing the logger for NHibernate
Date Mon, 28 Nov 2005 16:57:06 GMT
And this did the trick. I tried to use the PropertyFilter directly, but I
couldn't come up with the property key that represented LoggerName. I tried
loggername, LoggerName, logger, Logger, log4net:logger and log4net:loggername

class NHibernateFilter : StringMatchFilter
{
    public override FilterDecision Decide(LoggingEvent loggingEvent)
    {
        FilterDecision decision = FilterDecision.Accept;
        if (loggingEvent.LoggerName.StartsWith("NHibernate"))
            decision = FilterDecision.Deny;
	
        return decision;
    }

}

Thanks for your help!

--- Philip Nelson <panmanphil@yahoo.com> wrote:

> I'll look into it, thanks.
> 
> --- DWilliams@strohlsystems.com wrote:
> 
> > I would think that you could set up a filter to exclude the NHibernate
> > logs.  Looking at the code however implies that you might have to write a
> > not assembly filter.
> > 
> > 
> > 
> > 
> >                                                                            
> >              Philip Nelson                                                 
> >              <panmanphil@yahoo                                             
> >              .com>                                                      To 
> >                                        Log4NET User                        
> >              11/28/2005 08:40          <log4net-user@logging.apache.org> 
 
> >              AM                                                         cc 
> >                                                                            
> >                                                                    Subject 
> >              Please respond to         Re: Programatically changing the    
> >               "Log4NET User"           logger for NHibernate               
> >              <log4net-user@log                                             
> >              ging.apache.org>                                              
> >                                                                            
> >                                                                            
> >                                                                            
> >                                                                            
> > 
> > 
> > 
> > 
> > Since replies have been light, and my reply to "why not use xml
> > configuration"
> > might have been a little abrupt, let me elaborate.
> > 
> > I have been a log4net user almost since the first release. I have
> > evangelized
> > using it for the whole time, just like I evangelized log4j to my java
> > clients
> > before that. The tool is just what I want and has been really useful to me.
> > I
> > hope my last post didn't lead you to think I'm anti xml or something. I
> > think
> > I'm still listed on the JDOM JSR expert group, and have accepted patches in
> > both the crimson and xerces parsers.
> > 
> > My original reason for trying this was because I was working on some code
> > to
> > invoke HttpRuntime outside of IIS, and the HttpRuntime configuration system
> > insists on being the first caller of System.Configuration. At the time, I
> > understood the log4net assembly attribute as responsible for loading the
> > configuration system, and thought, how hard could this be to do in code.
> > The
> > answer was not hard, and I got the side benefits of not having to maintain
> > dozens of log4net config files scattered in the flotsam and jetsam of 4
> > years
> > of development. And, it would not require any fuss when versions change,
> > unlike
> > the publicpolicytoken attribute of the xml configuration file. And, I can
> > use
> > injection techniques to add logging setup to my apps with minmal coding.
> > Dang!
> > 
> > Then nhibernate entered the picture and decided to log on it's own, bad
> > behavior for a library except for debug logging IMHO.
> > 
> > --- Philip Nelson <panmanphil@yahoo.com> wrote:
> > 
> > > I had added a configuration that built my loggers in code only and all
> > was
> > > well
> > > (no xml!). Later though, I found out that NHibernate is doing something
> > bad,
> > > logging exceptions with log.Error. These exceptions are handled by the
> > > caller,
> > > so I really don't want those log calls made at all. No problem, I thought
> > I'd
> > > create a repository for the NHibernate assembly, setup the appender I
> > want,
> > > and
> > > this would get used instead of my default logger that sends emails on
> > error.
> > >
> > > ILoggerRepository logger = Reset(); //the normal logger
> > >
> > > string pattern = "%d %-5p %c %x - %m%n";
> > > string filename = Path.Combine(_logPath, LogFileName);
> > > string debugFilename = Path.Combine(_logPath + "debug/", LogFileName);
> > >
> > > //setup nhibernate logger separately so it will not email errors
> > > Type nType = AppContext.ActiveSession.GetType(); //gets the NHibernate
> > > ISession
> > > Assembly nhib = nType.Assembly;
> > > ILoggerRepository nrep = null;
> > > ILogger l = LoggerManager.GetLogger(nhib, nType);
> > > nrep = l.Repository;
> > > nrep.ResetConfiguration();
> > > ForwardingAppender dbgAppender = new ForwardingAppender();
> > > dbgAppender.AddAppender(setupDebugAppender(pattern, Path.Combine(_logPath
> > +
> > > "debug/NHib", LogFileName)));
> > > log4net.Config.BasicConfigurator.Configure(nrep, dbgAppender);
> > >
> > > My assumption was that the normal logger repository, "logger" would now
> > not
> > > be
> > > used because NHibernate gets its logger with
> > > LogManager.GetLogger(typeof(this)).
> > >
> > > The new logger logs correctly, but the original logger also logs, so my
> > goal
> > > of
> > > getting rid of the emails wasn't met.
> > >
> > > Any ideas about how to cheat NHibernate of it's logging?
> > >
> > > Philip - http://www.xcskiwinn.org/community/blogs/panmanphil/default.aspx
> > > "Now that was a bad vowel movement" - Barbara
> > >
> > 
> > 
> > Philip - http://www.xcskiwinn.org/community/blogs/panmanphil/default.aspx
> > "Now that was a bad vowel movement" - Barbara
> > 
> > 
> > 
> 
> 
> Philip - http://www.xcskiwinn.org/community/blogs/panmanphil/default.aspx
> "Now that was a bad vowel movement" - Barbara
> 


Philip - http://www.xcskiwinn.org/community/blogs/panmanphil/default.aspx
"Now that was a bad vowel movement" - Barbara

Mime
View raw message