从 NLog 中的目标获取布局

Get the layout from the target in NLog

什么我有一个NLog配置文件。

LoggingConfiguration nLogLoggingConfiguration;

然后

foreach (var target in nLogLoggingConfiguration.AllTargets)
        {

我想从target中获取layout,好像在内存中。当我在调试时将鼠标悬停在它上面时。我发现:

我要的是

 ${message}|${exception:format=tostring}|${stacktrace}

并非所有目标都有布局,因此您必须获取继承自 TargetWithLayout 的项目,然后您可以在 Layout 对象上调用 ToString。一个例子:

foreach (var target in nLogLoggingConfiguration.AllTargets.OfType<TargetWithLayout>())
{
    string layoutString = target.Layout.ToString();
    Console.WriteLine(layoutString);
}