C# 从NLog中的目标获取布局
我有一个NLog配置文件C# 从NLog中的目标获取布局,c#,nlog,C#,Nlog,我有一个NLog配置文件 LoggingConfiguration nLogLoggingConfiguration; 然后 我想从目标中得到布局,它似乎在内存中。当我在调试时将鼠标悬停在它上面时。我发现: 我想要的是 ${message}|${exception:format=tostring}|${stacktrace} 并非所有目标都有布局,因此必须获取从TargetWithLayout继承的项,然后才能调用布局对象上的ToString。例如: foreach (var targe
LoggingConfiguration nLogLoggingConfiguration;
然后
我想从目标中得到布局,它似乎在内存中。当我在调试时将鼠标悬停在它上面时。我发现:
我想要的是
${message}|${exception:format=tostring}|${stacktrace}
并非所有目标都有布局,因此必须获取从TargetWithLayout继承的项,然后才能调用布局对象上的ToString。例如:
foreach (var target in nLogLoggingConfiguration.AllTargets.OfType<TargetWithLayout>())
{
string layoutString = target.Layout.ToString();
Console.WriteLine(layoutString);
}
如果目标是TargetWithLayout类型,则为后续问题。我们是否可以将规则添加为var loggerRule=new loggingrulename,LogLevel.Fatal,target;?我的意思是var过滤器=新的ConditionBasedFilter;filter.Action=FilterResult.Log;filter.Condition=level==LogLevel.Fatal;var loggerRule=new loggingrulename,LogLevel.Fatal,target;loggerRule.Filters.Addfilter@我想是的。您只需将其添加到LoggingConfiguration的LoggerRules集合中。
foreach (var target in nLogLoggingConfiguration.AllTargets.OfType<TargetWithLayout>())
{
string layoutString = target.Layout.ToString();
Console.WriteLine(layoutString);
}