2013-10-22 163 views
1

如何從配置文件中讀取log4net.Util.PatternString值?從配置文件中讀取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的屬性,但找不到任何給我日誌文件位置的東西。

+0

您只需要PatternString或日誌文件名? –

+0

我對PatternString感興趣。 – Oxon

回答

0

您可以將log4net配置解析爲xml文件,然後查找appender - > file然後查找value屬性。

,或者你可以嘗試somethink像當前附加目的地搜索:

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; 
     ..... 
    } 
    } 
} 
0

你可以得到的文件名是這樣的:

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

這將有FileDatePattern性能。