So long as you are not switching threads and you are able to match up the
push and pops I can't see any reason why you wouldn't be able to proxy the
NDC. All it does is maintain a stack in a thread local slot. Can you provide
more details of the issues you are seeing.

Cheers,

Nicko 

> -----Original Message-----
> From: Baldree Matt [mailto:[EMAIL PROTECTED] 
> Sent: 10 March 2004 17:48
> To: 'Log4NET User'
> Subject: RE: config-free log4net?
> 
> This is basically what I did and it works great. I abstracted 
> out all of log4net except when you need to use NDC. You 
> cannot delegate to NDC. You must call it directly. :(
> 
> -----Original Message-----
> From: Nicko Cadell [mailto:[EMAIL PROTECTED]
> Sent: Wednesday, March 10, 2004 9:35 AM
> To: 'Log4NET User'
> Subject: RE: config-free log4net?
> 
> 
> Chad,
> 
> > I found that there is no real good way to configure log4net at 
> > runtime. There is not a full API set for doing this and 
> what methods 
> > appear to provide some of the functionality don't seem to work 
> > (they're used internally by log4net and don't seem to be 
> intended to 
> > be used externally).
> 
> The API is there for defining configuration at runtime, but 
> it is not strongly typed. This allows new appenders, layouts, 
> etc to be written without requiring changes to the log4net 
> interfaces. This does mean that configuring log4net 
> programmatically isn't as easy as it could be.
> 
> One way to configure log4net is to embed an xml config file 
> as an embedded resource in your assembly and use that to 
> configure logging.
> 
> Stream configStream =
> Assembly.GetExecutingAssembly().GetManifestResourceStream("Log
> gingConfig.xml
> ");
> log4net.Config.DOMConfigurator.Configure(configStream);
> configStream.Close();
> 
> This gives you the flexibility of the config file but without 
> the deployment issues.
> 
> Also the DOMConfigurator merges its changes into the 
> repository, therefore it would be possible to override this 
> embedded configuration by using the
> DOMConfigurator.ConfigureAndWatch(FileInfo) to monitor for an 
> external config file. This file does not have to exist, but 
> if it does then it will be loaded and merged into the repository.
> 
> Nicko
> 

Reply via email to