« Nlog » : différence entre les versions
Apparence
Ligne 79 : | Ligne 79 : | ||
"layout": "${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true}" | "layout": "${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true}" | ||
</kode> | </kode> | ||
= Target = | |||
== ColoredConsole == | |||
<filebox fn='appsettings.json'> | |||
"console": { | |||
"type": "ColoredConsole", | |||
"layout": "${level:uppercase=true} - ${logger} - ${message:withexception=true}", | |||
"useDefaultRowHighlightingRules": false, | |||
"rowHighlightingRules": [ | |||
{ | |||
"condition": "level == LogLevel.Fatal", | |||
"foregroundColor": "Blue" | |||
} | |||
] | |||
} | |||
</filebox> |
Version du 16 mars 2023 à 16:03
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 |
"console": {
"type": "ColoredConsole",
"layout": "${level:uppercase=true} - ${logger} - ${message:withexception=true}",
"useDefaultRowHighlightingRules": false,
"rowHighlightingRules": [
{
"condition": "level == LogLevel.Fatal",
"foregroundColor": "Blue"
}
]
}
|