NLog WebServiceTarget: StackTrace null - PullRequest
       22

NLog WebServiceTarget: StackTrace null

0 голосов
/ 06 декабря 2018

При использовании MailTarget с пользовательским LayoutRenderer я вижу, что LogEventInfo.StackTrace содержит данные, которые затем могут быть включены в визуализированный ответ.Однако замена MailTarget на WebServiceTarget и использование того же пользовательского LayoutRenderer LogEventInfo.StackTrace теперь возвращает null

Обе цели являются «стандартными» реализациями NLog, которые вызываются из одного и того же кода с использованиемтот же LayoutRenderer

Кто-нибудь еще сталкивался с такой же проблемой?Есть ли какое-то ограничение WebServiceTarget, которое препятствует захвату следов стека?

Решение, основанное на предложении Рольфа ниже:

public sealed class MyLayoutRenderer : LayoutRenderer, IUsesStackTrace
{
    public StackTraceUsage StackTraceUsage => StackTraceUsage.Max; 

    ....
}

1 Ответ

0 голосов
/ 06 декабря 2018

NLog только захватывает и предоставляет StackTrace для цели, если вы используете layoutrenderer, такой как Ex.${callsite}.

Если у вас есть пользовательский макет-рендерер, вы можете наследовать от NLog.Internal.IUsesStackTrace (и возвращать StackTraceUsage.Max)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...