Is "Common.Logging" your wrapper around log4net or another library?


________________________________
 From: Todd Webb <webbjt...@gmail.com>
To: log4net-user@logging.apache.org 
Sent: Thursday, May 24, 2012 9:42 AM
Subject: Inconsistency of internal logging and behavior in log4net in ASP.NET 
MVC (multi-assembly)
 

I have a multi-assembly ASP.NET MVC application.  I reviewed the recent posts 
on a similar topic, but decided that my problem merited a new thread.
 
I am configuring log4net is a separate configuration file and initialize 
log4net with this statement:
 
[assembly: log4net.Config.XmlConfigurator(ConfigFile = 
"WebApplication.log4net", Watch=true)]
 
I am attempting to log from the web application assembly and from another 
assembly in the solution.  I enabled log4net internal logging and received the 
following:
 
 
log4net: XmlConfigurator: loading XML configuration
log4net: XmlConfigurator: Configuring Repository [log4net-default-repository]
log4net: XmlHierarchyConfigurator: Configuration update mode [Merge].
log4net: XmlHierarchyConfigurator: Logger [root] Level string is [ERROR].
log4net: XmlHierarchyConfigurator: Logger [root] level set to 
[name="ERROR",value=70000].
log4net: XmlHierarchyConfigurator: Loading Appender [DebugAppender] type: 
[log4net.Appender.DebugAppender]
log4net: XmlHierarchyConfigurator: Setting Property [ImmediateFlush] to Boolean 
value [True]
log4net: XmlHierarchyConfigurator: Setting Property [Layout] to object 
[log4net.Layout.SimpleLayout]
log4net: XmlHierarchyConfigurator: Created Appender [DebugAppender]
log4net: XmlHierarchyConfigurator: Adding appender named [DebugAppender] to 
logger [root].
log4net: XmlHierarchyConfigurator: Retrieving an instance of 
log4net.Repository.Logger for logger [WebApplication.Controllers.AppController].
log4net: XmlHierarchyConfigurator: Setting 
[WebApplication.Controllers.AppController] additivity to [True].
log4net: XmlHierarchyConfigurator: Logger 
[WebApplication.Controllers.AppController] Level string is [DEBUG].
log4net: XmlHierarchyConfigurator: Logger 
[WebApplication.Controllers.AppController] level set to 
[name="DEBUG",value=30000].
log4net: XmlHierarchyConfigurator: Adding appender named [DebugAppender] to 
logger [WebApplication.Controllers.AppController].
log4net: XmlHierarchyConfigurator: Retrieving an instance of 
log4net.Repository.Logger for logger 
[WebApplication.Domain.Implementation.DomainImpl].
log4net: XmlHierarchyConfigurator: Setting 
[WebApplication.Domain.Implementation.DomainImpl] additivity to [True].
log4net: XmlHierarchyConfigurator: Logger 
[WebApplication.Domain.Implementation.DomainImpl] Level string is [DEBUG].
log4net: XmlHierarchyConfigurator: Logger 
[WebApplication.Domain.Implementation.DomainImpl] level set to 
[name="DEBUG",value=30000].
log4net: XmlHierarchyConfigurator: Adding appender named [DebugAppender] to 
logger [WebApplication.Domain.Implementation.DomainImpl].
log4net: XmlHierarchyConfigurator: Hierarchy Threshold []
 
I am interested in the logger at 
WebApplication.Domain.Implementation.DomainImpl and see that it is set to 
debug.  However, when I access the logger in the debugger and print its state I 
get this:
 
DomainImpl.log       {Common.Logging.Simple.NoOpLogger} Common.Logging.ILog 
{Common.Logging.Simple.NoOpLogger}
[Common.Logging.Simple.NoOpLogger] {Common.Logging.Simple.NoOpLogger} 
Common.Logging.Simple.NoOpLogger
IsDebugEnabled       false  bool
IsErrorEnabled       false  bool
IsFatalEnabled       false  bool
IsInfoEnabled false  bool
IsTraceEnabled       false  bool
IsWarnEnabled false  bool
              
 
The only thing that made sense to me was that I was accessing a different 
logger in my code than the one that was referenced in the log4net log.  
However, I only see two loggers created, one each for my web application and 
domain assemblies. I don’t see any logger created that has no logging levels 
enabled.  I am stumped and welcome any guidance. For example, when should I get 
a NoOpLogger?

Reply via email to