Nicko, We talked about this about 2 months ago (not sure if you remember it).
First let me say that log4net is kickass and that I use it very happily. I'm frustrated by the config stuff, though. While not a small part of log4net, it's still semi-easy to work around and use all the rest of the log4net goodness. I didn't mean to cast dispersions upon all of log4net for this one lacking (besides, it's only log4net 1.x, right? You can't expect the kitchen sink until v3). Anyhow, back to the question. If I recall correctly, it was impossible to create new appenders and add them to the root or maybe remove them, something like that. Since appenders are loaded only when a logger is first created and references it, there was no way to add one after-the-fact. I may be slightly wrong, but it was something around there. Also, managing loggers wasn't straight forward; the API is designed primarily for extensibility, not runtime management, so that made it difficult, obviously, to manage it. The reason I ultimately dropped it is it would take a semi- to fully-major effort to redesign the interfaces to facilitate runtime configuration. The API is designed around being configured from within rather than from without. To change it would require it to be designed to be configured from without and the various XXXConfigurators would merely operate on the APIs like anyone doing it manually would do. Anyhow, it's probably something to think about for v2 or perhaps a .5 release. It's not going to change anytime soon unless a bunch of people have a lot of free time. -Chad -----Original Message----- From: Nicko Cadell [mailto:[EMAIL PROTECTED] Sent: Wednesday, May 26, 2004 11:55 AM To: 'Log4NET User' Subject: RE: Question on SDK Classes > The most frustrating part of this is that log4net ALMOST has > the ability to be programmatically configured. It's about 75% > the way there, but there are a few key things you cannot do > programmatically and so you have to give up and do the > file-mangling hack. > > </rant> > > -Chad I hear you. What can't you do programmatically? What are the specific use cases? If there is anything that we can do in the short term without breaking the current model then we should look at doing it. We also should plan to improve this area in future. Nicko
