Hello,

I have a question which is kind of related to the same topic.

I have a big amount of legacy code with a custom trace system, which
fortunately I'm able to redirect to log4net now.

This legacy trace system has custom names for loggers, such as
"service1","service2" etc, which I cannot determine at compile time.

What would be the cost of having a wrapper which would do (on each log call):
ILog myLogger = LogManager.GetLogger("Legacy_"+logName);
then log accordingly ?

Is there a need to cache the ILog instance or is it not useful at all ?

Is this approach (compared to the classic static readonly ILog = ...
approach) threadsafe from a log4net point of view ?


thanks

Thibaut
http://www.dotnetguru2.org/tbarrere

2005/3/6, Nicko Cadell <[EMAIL PROTECTED]>:
> If you know which logging calls in the code you want to go into separate 
> files then it is best to create separate appenders for each log file as 
> suggested below. The code would select the logger required by calling 
> LogManager.GetLogger with the appropriate name, and that logger would route 
> through to the correct appender.
> 
> If you need to configure / reconfigure the selected method at runtime then 
> you will need to write a custom filter to detect the method name, however 
> this may not work in all circumstances as the JIT may optimise away certain 
> method calls (only in Release builds).
> 
> Nicko
> 
> > -----Original Message-----
> > From: Eduard Ralph [mailto:[EMAIL PROTECTED]
> > Sent: 28 February 2005 17:46
> > To: 'Log4NET User'; 'Cheng'
> > Subject: AW: separate log info from a particular method
> >
> > Hi,
> >
> > I won't dig out the manuals to write a config but this should
> > be pretty close to what you would have to write:
> >
> > log4net>
> >       <appender name="AAppender" type="Appender.RollingFileAppender">
> >               <file value="A.TXT" />
> >               <appendToFile value="false" />
> >               <!-- A1 uses PatternLayout -->
> >               <layout type="Layout.PatternLayout">
> >                       <conversionPattern value="[%d] %p %c %x
> > - %m%n" />
> >               </layout>
> >       </appender>
> >       <appender name="BAppender" type="Appender.RollingFileAppender">
> >               <file value="B.TXT" />
> >               <appendToFile value="false" />
> >               <!-- B1 uses PatternLayout -->
> >               <layout type="Layout.PatternLayout">
> >                       <conversionPattern value="[%d] %p %c %x
> > - %m%n" />
> >               </layout>
> >       </appender>
> >       <root>
> >               <level value="ERROR" />
> >               <appender-ref ref="AAppender" />
> >       </root>
> >       <logger name="A">
> >               <appender-ref ref="AAppender" />
> >       </logger>
> >       <logger name="B">
> >               <appender-ref ref="BAppender" />
> >       </logger>
> > </log4net>
> >
> > Eddie
> > -----Urspr�ngliche Nachricht-----
> > Von: Cheng [mailto:[EMAIL PROTECTED]
> > Gesendet: Montag, 28. Februar 2005 18:15
> > An: Log4NET User
> > Betreff: separate log info from a particular method
> >
> > Hi,
> >
> > I am using RollingFileAppender for my whole application.
> > Suppose the main logfile is A.txt. I want to log all
> > information from a particular method to a separate file say
> > B.txt (these log should not be logged to A.txt).
> > StringMatchFilter filter should be work, however the
> > particular method has to log a particular string in order to
> > use the StringMatchFilter fileter. Is there any other
> > convenient way to archieve this? Ideally just add some config
> > settings.
> > thanks
> >
> >
>

Reply via email to