C# 从配置文件读取log4net.Util.PatternString
如何从配置文件中读取log4net.Util.PatternString值C# 从配置文件读取log4net.Util.PatternString,c#,log4net,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}.x
<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属性,但找不到任何提供日志文件位置的信息。您可以将log4net配置解析为xml文件,然后在value属性中找到appender->file 或者您可以尝试一些类似于在当前附加器中搜索的方法:
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;
.....
}
}
}
您可以获得如下文件名:
var ap = Log.Logger.Repository.GetAppenders().First(a => a is FileAppender) as FileAppender;
它将具有
文件
和日期模式
属性。您只需要PatternString或日志文件名?我对PatternString感兴趣。