erizet / NlogViewer

NlogViewer is a simple WPF-control to show NLog-logs.
MIT License
107 stars 50 forks source link

How to Use NlogViewer in Nlog 5.0 with Fluent Configuration API , Better with MVVM pattern #23

Open dongfengxin opened 1 year ago

dongfengxin commented 1 year ago

As NLog Update to Nlog 5.0, How to use Fluent Configuration API to binding NlogViewer ?

like this way:

NLog.LogManager.Setup().LoadConfiguration(builder => { builder.ForLogger().FilterMinLevel(LogLevel.Info).WriteToConsole(); builder.ForLogger().FilterMinLevel(LogLevel.Debug).WriteToFile(fileName: "file.txt"); });

Chaoses-Ib commented 1 year ago

WriteToConsole is an extension method. Its source code is:

public static ISetupConfigurationTargetBuilder WriteToConsole(this ISetupConfigurationTargetBuilder configBuilder, Layout layout = null, Encoding encoding = null, bool stderr = false, bool detectConsoleAvailable = false, bool writeBuffered = false)
{
    ConsoleTarget consoleTarget = new ConsoleTarget();
    if (layout != null)
    {
        consoleTarget.Layout = layout;
    }

    if (encoding != null)
    {
        consoleTarget.Encoding = encoding;
    }

    consoleTarget.StdErr = stderr;
    consoleTarget.DetectConsoleAvailable = detectConsoleAvailable;
    consoleTarget.WriteBuffer = writeBuffered;
    return configBuilder.WriteTo(consoleTarget);
}

To use the Fluent-Configuration-API with NlogViewer, you need to implement a WriteToNlogViewer that would be similar to WriteToConsole.