Hello.

var appender = new
log4net.Appender.FileAppender(log4net.Layout.PatternLayout.DetailConversionPattern,
scanCode+".log");
log4net.Config.BasicConfigurator.Configure(appender);

On Tue, Jul 13, 2010 at 10:23 PM, Pareto, Charles <charles.par...@va.gov>wrote:

>  I figured out how to change the name of the log file using a pattern to
> set the value of the string property, but how do I change the filename in my
> source code.
>
> Here is all my code:
>
> private readonly ILog logger = LogManager.GetLogger("DeIdentifyDicom");
> //defined at top of class
>
> log4net.Config.XmlConfigurator.Configure(); // defined in constructor
>
> logger.Fatal("Failed to Open File in Time Limit. Filename - " + filePath);
> //using it to log in methods
>
>
>
>
>
> Here is the .config file:
>
>
>
> <log4net>
>
>     <appender name="ConsoleAppender" type="
> log4net.Appender.ConsoleAppender">
>
>       <layout type="log4net.Layout.PatternLayout">
>
>         <conversionPattern value="%date [%thread] %-5level %logger
> [%property{NDC}] - %message%newline" />
>
>       </layout>
>
>     </appender>
>
>     <root>
>
>       <level value="INFO" />
>
>       <appender-ref ref="ConsoleAppender" />
>
>     </root>
>
>
>
>     <logger name="DeIdentifyDicom">
>
>       <level value="INFO" />
>
>       <appender-ref ref="LogFileAppender" />
>
>     </logger>
>
>
>
>     <appender name="LogFileAppender" type="log4net.Appender.FileAppender">
>
>       <file type="log4net.Util.PatternString" value="
> c:\log-file-[%processid].txt" />
>
>       <param name="AppendToFile" value="true"/>
>
>       <layout type="log4net.Layout.PatternLayout">
>
>         <param name="ConversionPattern" value="%-5p%d{yyyy-MM-dd hh:mm:ss}
> – %m%n" />
>
>       </layout>
>
>     </appender>
>
> </log4net>
>
>
>
>
>
> *From:* Pareto, Charles [mailto:charles.par...@va.gov]
> *Sent:* Tuesday, July 13, 2010 10:47 AM
> *To:* log4net-user@logging.apache.org
> *Subject:* how do I define log file at run time?
>
>
>
> I have just started using log4net and I can write to my c# application. I’m
> currently writing to the log file “c:\DeIdentifyDicom.log”
>
> Defined in my .config file, but I would like to set the log file name at
> runtime. Can anyone help me with this?
>
> Here would be an example and the name of the log I would need to create at
> runtime.
>
>
>
> Void SomeMethod()
>
> {
>
> String scanCode = ReadScanCode();
>
> //create log called scancode.log
>
> //Log to scancode.log
>
> }
>
>
>
>
>
>
>
> Here is the .config file info I have so far, but this only creates a
> staticly named log file
>
>
>
> <configSections>
>
>     <section name="log4net" type="
> log4net.Config.Log4NetConfigurationSectionHandler,Log4net"/>
>
>   </configSections>
>
>
>
>   <log4net>
>
>     <appender name="ConsoleAppender" type="
> log4net.Appender.ConsoleAppender">
>
>       <layout type="log4net.Layout.PatternLayout">
>
>         <conversionPattern value="%date [%thread] %-5level %logger
> [%property{NDC}] - %message%newline" />
>
>       </layout>
>
>     </appender>
>
>     <root>
>
>       <level value="INFO" />
>
>       <appender-ref ref="ConsoleAppender" />
>
>     </root>
>
>
>
>     <logger name="DeIdentifyDicom">
>
>       <level value="INFO" />
>
>       <appender-ref ref="LogFileAppender" />
>
>       <!--<appender-ref ref="SmtpAppender" />-->
>
>     </logger>
>
>     <appender name="LogFileAppender" type="
> log4net.Appender.RollingFileAppender" >
>
>       <param name="File" value="c:\DeIdentifyDicom.log" />
>
>       <param name="AppendToFile" value="true" />
>
>       <rollingStyle value="Size" />
>
>       <maxSizeRollBackups value="10" />
>
>       <maximumFileSize value="10MB" />
>
>       <staticLogFileName value="true" />
>
>       <layout type="log4net.Layout.PatternLayout">
>
>         <param name="ConversionPattern" value="%-5p%d{yyyy-MM-dd hh:mm:ss}
> – %m%n" />
>
>       </layout>
>
>     </appender>
>
>   </log4net>
>
>
>

Reply via email to