Make NoOpLoggerFA the default logger when logging config is missing or 
malformed. Allow FactoryAdapter to be set by the application
-----------------------------------------------------------------------------------------------------------------------------------

         Key: IBATISNET-145
         URL: http://issues.apache.org/jira/browse/IBATISNET-145
     Project: iBatis for .NET
        Type: Improvement
    Versions: DataMapper 1.3    
    Reporter: Ron Grabowski
 Assigned to: Gilles Bayon 
    Priority: Minor


I'm working on a project that uses 200 statements across 4 SqlMapper instances. 
Starting the program with DEBUG logged turned on generates about 62k of 
initialization log messages. Using Log4Net this takes about 1.4 seconds. Using 
the NoOpLogger it takes about 1.2 seconds.

When the logging section is missing from the App.config file (or well-formed 
but missing the IBatisNet.Logging.Log4Net assembly, the application defaults to 
the ConsoleLogger and the application takes over 15 seconds to initialize 
itself. The application is a .NET 1.1 WinForm.

If there isn't a logger defined, I think the default behavior should be to use 
the NoOpLogger instead of the ConsoleLogger. Perhaps we can add an additional 
property to the LogManager called Implementation (inspired by 
Sooda.Logging.LogManager) or FactoryAdapter so the implementation can be 
specified by the application:

if (isWinForm)
{
 if (LogManager.FactoryAdapter is ConsoleOutLoggerFA)
 {
 // WinForms don't usually redirect the Console.Out...the logging config is 
probably missing or misconfigured
 LogManager.FactoryAdapter = new NoOpLoggerFA(); 
 }
}

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to