Debug and Trace logs not printed although minlevel set to Trace on appsettings.json. actual output:
FATAL|ConsoleAppLogging.Program|LogCritical
ERROR|ConsoleAppLogging.Program|LogError
INFO|ConsoleAppLogging.Program|LogInformation
WARN|ConsoleAppLogging.Program|LogWarning
I created a sample project repo that can be found here https://github.com/yaniv120892/ApplicationLogging
using .NetCore 3.1 and packages :
appsettings.Json:
{
"NLog": {
"targets": {
"logConsole": {
"type": "ColoredConsole",
"layout": "${uppercase:${level}}|${logger}|${message} ${exception:format=tostring}"
}
},
"rules": [
{
"name": "*",
"minLevel": "Trace",
"writeTo": "logConsole"
}
]
}
}
ApplicationLogging.cs:
public static class ApplicationLogging
{
public static ILogger CreateLogger<T>() =>
s_loggerFactory.CreateLogger<T>();
private static readonly ILoggerFactory s_loggerFactory = LoggerFactory.Create(AddNLog);
private static void AddNLog(ILoggingBuilder builder)
{
var configJson = new ConfigurationBuilder()
.SetBasePath(System.IO.Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json")
.Build();
LogManager.Configuration = new NLogLoggingConfiguration(configJson.GetSection("NLog"));
builder.AddNLog();
}
}
Program.cs:
public class Program
{
private static readonly ILogger s_logger = ApplicationLogging.CreateLogger<Program>();
static void Main()
{
s_logger.LogCritical("LogCritical");
s_logger.LogDebug("LogDebug");
s_logger.LogError("LogError");
s_logger.LogInformation("LogInformation");
s_logger.LogTrace("LogTrace");
s_logger.LogWarning("LogWarning");
}
}
Think you are missing SetMinimumLevel
:
public static class ApplicationLogging
{
public static ILogger CreateLogger<T>() => s_loggerFactory.CreateLogger<T>();
private static readonly ILoggerFactory s_loggerFactory = LoggerFactory.Create(AddNLog);
private static void AddNLog(ILoggingBuilder builder)
{
var configJson = new ConfigurationBuilder()
.SetBasePath(System.IO.Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json")
.Build();
var nlogConfig = new NLogLoggingConfiguration(configJson.GetSection("NLog"));
builder.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Trace);
builder.AddNLog(nlogConfig);
}
}