Postsharp не входит на уровень трассировки - PullRequest
1 голос
/ 02 апреля 2019

Мне нравится регистрировать некоторые сообщения Postsharp на уровне трассировки.К сожалению, журналы до этого уровня не выводятся.Все остальные уровни работают.То же поведение с консолью или бэкэндом NLog или при входе в систему из другого класса.

Как включить уровень трассировки?

App.xaml.cs:

[Log(AttributeExclude = true)]
public partial class App
{
    private static readonly LogSource LogSource = LogSources.Default.ForCurrentType().WithLevels(LogLevel.Trace, LogLevel.Error);

    protected override void OnStartup(StartupEventArgs e)
    {
        LoggingServices.DefaultBackend = new PostSharp.Patterns.Diagnostics.Backends.Console.ConsoleLoggingBackend();
        LogSource.Debug.Write(Formatted("Debug"));      // prints "Debug"
        LogSource.Trace.Write(Formatted("Trace"));      // prints nothing
        LogSource.Default.Write(Formatted("Default"));  // prints nothing
        LogSource.Trace.IsEnabled                       // is false
        ..

GlobalAspect.cs

using PostSharp.Patterns.Diagnostics;
using PostSharp.Extensibility;

[assembly: Log(AttributePriority = 1, AttributeTargetMemberAttributes = MulticastAttributes.Protected | MulticastAttributes.Internal | MulticastAttributes.Public)]
[assembly: Log(AttributePriority = 2, AttributeExclude = true, AttributeTargetMembers = "get_*" )]

1 Ответ

1 голос
/ 07 апреля 2019

LogLevel.Trace - это самый низкий уровень ведения журнала в библиотеке диагностики PostSharp.По умолчанию многословность серверной части журналирования установлена ​​на LogLevel.Debug, и в результате все сообщения трассировки игнорируются.Вы можете настроить многословность серверной части, как показано в следующем примере:

LoggingServices.DefaultBackend.DefaultVerbosity.SetMinimalLevel( LogLevel.Trace );
...