> -----Original Message-----
> From: cl408e [mailto:[EMAIL PROTECTED] 
> Sent: Friday, 22 September 2006 8:53 p.m.
> To: log4net-user@logging.apache.org
> Subject: Re: Programmatic configuration
>
>
> have you got your answer? i am keen to know that too...

Yes I did an answer.

Here is what eventually worked for me.  This code cofigures my trace
appender (all levels) based on a file name loaded from the registry and
the current date/time.

// My using declarations
using log4net;
using log4net.Config;
using log4net.Layout;

...
PatternLayout layout = new PatternLayout("%date [%level] -
%message%newline");
FileAppender fileAppenderTrace = new FileAppender();
fileAppenderTrace.Layout = layout;
fileAppenderTrace.AppendToFile = false;

// Insert current date and time to file name
DateTime currentTime = DateTime.Now;
String dateTimeStr = "" + currentTime.Year;
if (currentTime.Month < 10)
    dateTimeStr += "0";
dateTimeStr += currentTime.Month;
if (currentTime.Day < 10)
        dateTimeStr += "0";
dateTimeStr += currentTime.Day + "-";
if (currentTime.Hour < 10)
        dateTimeStr += "0";
dateTimeStr += currentTime.Hour;
if (currentTime.Minute < 10)
        dateTimeStr += "0";
dateTimeStr += currentTime.Minute;

String traceFile = registry.getTraceFilename();  // This loads the log
filename from my registry class.
String traceFileBeforeExt = traceFile.Substring(0,
traceFile.LastIndexOf('.'));
String traceFileExt = traceFile.Substring(traceFile.LastIndexOf('.'));
traceFile = traceFileBeforeExt + "-" + dateTimeStr + traceFileExt;

fileAppenderTrace.File = traceFile;

// Configure filter to accept log messages of any level.
log4net.Filter.LevelMatchFilter traceFilter = new
log4net.Filter.LevelMatchFilter();
traceFilter.LevelToMatch = log4net.Core.Level.All;
fileAppenderTrace.ClearFilters();
fileAppenderTrace.AddFilter(traceFilter);

fileAppenderTrace.ImmediateFlush = true;
fileAppenderTrace.ActivateOptions();

// Attach appender into hierarchy
log4net.Repository.Hierarchy.Logger root =
((log4net.Repository.Hierarchy.Hierarchy)LogManager.GetRepository()).Roo
t;
root.AddAppender(fileAppenderTrace);
root.Repository.Configured = true;


Hope this works for you.  Good luck.
Brendan.



This communication, including any attachments, is confidential. If you are not 
the intended recipient, you should not read it - please contact me immediately, 
destroy it, and do not copy or use any part of this communication or disclose 
anything about it. Thank you. Please note that this communication does not 
designate an information system for the purposes of the Electronic Transactions 
Act 2002.

Reply via email to