« Nlog » : différence entre les versions
De Banane Atomic
Aller à la navigationAller à la recherche
(→Target) |
|||
Ligne 83 : | Ligne 83 : | ||
== [https://github.com/NLog/NLog/wiki/ColoredConsole-target ColoredConsole] == | == [https://github.com/NLog/NLog/wiki/ColoredConsole-target ColoredConsole] == | ||
<filebox fn='appsettings.json'> | <filebox fn='appsettings.json'> | ||
"async": true, // use the asynchronous NLog Console Target | |||
"console": { | "console": { | ||
"type": "ColoredConsole", | "type": "ColoredConsole", | ||
Ligne 96 : | Ligne 97 : | ||
} | } | ||
</filebox> | </filebox> | ||
* [https://github.com/NLog/NLog.Extensions.Logging/wiki/NLog-Console-and-AddConsole NLog Console vs AddConsole] | |||
== [https://github.com/NLog/NLog/wiki/File-target File] == | == [https://github.com/NLog/NLog/wiki/File-target File] == |
Version du 16 mars 2023 à 16:14
Links
Console project
Nuget packages
- NLog.Extensions.Logging
- Microsoft.Extensions.DependencyInjection
- Microsoft.Extensions.Configuration.Json
Config file
Be sure to have the config file copied to the output folder while building. |
appsettings.json |
{ "NLog": { "throwConfigExceptions": true, "targets": { "async": true, "logconsole": { "type": "ColoredConsole", "layout": "${level:uppercase=true} - ${logger} - ${message:withexception=true}" } }, "rules": [ { "logger": "*", "minLevel": "Info", "writeTo": "logconsole" } ] } } |
Program
Program.cs |
var logger = LogManager.GetCurrentClassLogger(); try { var config = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true) .Build(); // to log in this class only LogManager.Configuration = new NLogLoggingConfiguration(config.GetSection("NLog")); using var servicesProvider = new ServiceCollection() .AddTransient<MyApp>() .AddLogging(loggingBuilder => { // configure Logging with NLog loggingBuilder.ClearProviders(); loggingBuilder.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Trace); loggingBuilder.AddNLog(config); }).BuildServiceProvider(); var myApp = servicesProvider.GetRequiredService<MyApp>(); myApp.Run(); } catch (Exception ex) { // NLog: catch any exception and log it. logger.Error(ex, "Stopped program because of exception"); throw; } finally { // Ensure to flush and stop internal timers/threads before application-exit (Avoid segmentation fault on Linux) LogManager.Shutdown(); } |
Configuration file
Layout
// default layout "layout": "${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true}" |
Target
ColoredConsole
appsettings.json |
"async": true, // use the asynchronous NLog Console Target "console": { "type": "ColoredConsole", "layout": "${level:uppercase=true} - ${logger} - ${message:withexception=true}", "useDefaultRowHighlightingRules": false, "rowHighlightingRules": [ { "condition": "level == LogLevel.Fatal", "foregroundColor": "Blue", "backgroundColor": "White" } ] } |
File
appsettings.json |
"file": { "type": "File", "fileName": "nlog.log" } |