I have Log4net configuration in app.config file with the file name set as a property as shown below. But On loading the application, files with name '(null)' are getting created.
I have removed [assembly: log4net.Config.XmlConfigurator(Watch = true)] from AssemblyInfo.cs file also. Still I am facing the issue.
<logger name="ReportLogger">
<appender-ref ref="RollingFileAppender2" />
<level value="ALL" />
</logger>
<appender name="RollingFileAppender2"
type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString"
value="C:\MyApplicationLogs\%property{ReportName}.log" />
<appendToFile value="true" />
<rollingStyle value="Composite" />
<!--<datePattern value="yyyyMMdd-HHmm" />-->
<maxSizeRollBackups value="10000" />
<maximumFileSize value="1MB" />
<countDirection value="1"/>
<immediateFlush value="true" />
<appendToFile value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%message%n" />
</layout>
</appender>
And my code is as follows:
public void LogReport(object msg, string filename, string date)
{
ReportMsglogger = LogManager.GetLogger("ReportLogger");
string AppLogFileName = GetTextReportFileName(filename, date);
try
{
if (!String.IsNullOrEmpty(AppLogFileName))
{
log4net.Repository.ILoggerRepository loggerRepository2 = LogManager.CreateRepository(AppLogFileName + "Repository");
ThreadContext.Properties["ReportName"] = AppLogFileName;
log4net.Config.XmlConfigurator.Configure(loggerRepository2);
}
}
catch (Exception ex) { }
ReportMsglogger = LogManager.GetLogger(AppLogFileName + "Repository", "ReportLogger");
ReportMsglogger.Info(msg);
}
Can someone tell me what is wrong here.