If you want to configure log4net programmatically rather than using a
config file you should get hold of the logger repository implementation
object (which will be a Hierarchy type) and configure the loggers on
that.

The following example configures the root logger with a ConsoleAppender
and the "foo" logger with a FileAppender:


using log4net;
using log4net.Appender;
using log4net.Layout;
using log4net.Repository.Hierarchy;

public class ConfigEx
{
  private static void Configure()
  {
    // Lookup the hierarchy
    Hierarchy hierarchy =
(Hierarchy)log4net.LogManager.GetLoggerRepository();

    // Create a console appender
    ConsoleAppender consoleAppender = new ConsoleAppender();

    PatternLayout patternLayout = new PatternLayout();
    patternLayout.ConversionPattern = "%d [%t] %-5p %c [%x] - %m%n";
    patternLayout.ActivateOptions();

    consoleAppender.Layout = patternLayout;
    consoleAppender.ActivateOptions();

    // Attach console appender to root logger
    hierarchy.Root.AddAppender(consoleAppender);

    // Create file appender
    FileAppender fileAppender = new FileAppender();

    patternLayout = new PatternLayout();
    patternLayout.ConversionPattern = "%d [%t] %-5p %c [%x] - %m%n";
    patternLayout.ActivateOptions();

    fileAppender.Layout = patternLayout;
    fileAppender.AppendToFile = true;
    fileAppender.File = "C:\\logfile.txt";
    fileAppender.ActivateOptions();

    // Attach file appender to logger named 'foo'
    log4net.Repository.Hierarchy.Logger logger =
(Logger)hierarchy.GetLogger("foo");
    logger.AddAppender(fileAppender);
    
    // Inform the hierarchy that it is now configured
    hierarchy.Configured = true;
  }
}

Nicko


> -----Original Message-----
> From: Williams, Damon [mailto:[EMAIL PROTECTED] 
> Sent: 19 February 2005 00:25
> To: [email protected]
> Subject: very simple question
> 
> I'm a Java guy trying to get the hang of C#
> 
>  
> 
> Extremely basic question I'm sure:
> 
> LogManager.GetLogger() returns ILog
> 
>  
> 
> How do I access the underlying Logger object so that I can 
> call SetLevel, AddAppender, etc?
> 
>  
> 
>  
> 
> Thanks,
> 
> - Damon Williams
> 
> PayPal Developer Technical Support
> 
> [EMAIL PROTECTED]
> 
>  
> 
> 

Reply via email to