从配置文件中读取log4net.Util.PatternString

时间:2013-10-22 13:11:48

标签: c# log4net

如何从配置文件中读取log4net.Util.PatternString值?

<log4net>
  ...
  <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
      <file type="log4net.Util.PatternString" value="D:\AppLogs\%date{yyyy}\%date{MM}\%date{dd-MMM}.xml" />
  </appender>
</log4net>

我查看了ILog属性,但找不到任何能够提供日志文件位置的内容。

2 个答案:

答案 0 :(得分:1)

您可以将log4net配置解析为xml文件,然后找到appender - &gt;文件然后是value属性。

或者您可以尝试在当前的追加者中搜索:

foreach (var r in log4net.LogManager.GetAllRepositories()){
  foreach (var a in r.GetAppenders()){
    if (a is log4net.Appender.FileAppender){
      log4net.Appender.FileAppender fileappender = a as  log4net.Appender.FileAppender;
      .....
    }
  }
} 

答案 1 :(得分:0)

你可以得到这样的文件名:

var ap = Log.Logger.Repository.GetAppenders().First(a => a is FileAppender) as FileAppender;

它将具有FileDatePattern属性。