2

如何从配置文件中读取 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 属性,但找不到任何可以提供日志文件位置的内容。

4

2 回答 2

1

您可以将 log4net 配置解析为 xml 文件,然后找到 appender -> file en 然后是 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;
      .....
    }
  }
} 
于 2013-10-22T13:42:07.980 回答
0

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

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

它将具有FileDatePattern属性。

于 2013-10-22T13:50:51.407 回答