Кто-нибудь знает, как фильтровать (удалять) ненужные логи из вызовов функций API? Они загрязняют логи) .NET Core. Я пытался настроить ведение журнала через appsettings.json, но это не сработало. Мне нужно их избегать вообще, а лучше уменьшить логи в режимах Trace/Info/. Я использую NLog в Program\StartUp, Microsoft Extension Logging в других...
След:
ОБНОВЛЯТЬ
appsettings.json:
"Logging": {
"LogLevel": {
"Default": "Error",
"Microsoft": "Error",
"Microsoft.Hosting.Lifetime": "Error",
"Microsoft.AspNetCore": "Error" //<----i hoped it will help
},
"EventLog": {
"LogLevel": {
"Default": "None",
"Microsoft": "None",
"Microsoft.Hosting.Lifetime": "None"
}
}
},
нлог.конфигурация:
<rules>
<logger name = "*" minLevel = "Info" writeTo = "file, kafka, console" />
<logger name = "Microsoft.AspNetCore*" minLevel = "None" final = "true" />
</rules>
</nlog>
Программа:
public static void Main(string[] args)
{
var path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, ProjectConstants.FOLDER_CONFIGS);
var logger = NLogBuilder.ConfigureNLog(Path.Combine(path, "nlog.config")).GetCurrentClassLogger();
logger.Info("init main");
var builder = new ConfigurationBuilder()
.SetBasePath(AppDomain.CurrentDomain.BaseDirectory)
.AddJsonFile(Path.Combine(path, "appsettings.json"), true);
Configuration = builder.Build();
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseKestrel()
.UseConfiguration(Configuration)
.UseStaticWebAssets()
.UseStartup<Startup>()
/*
.ConfigureLogging(logging =>
{
logging.ClearProviders();
logging.SetMinimumLevel(LogLevel.Trace);
})
*/
.UseNLog();
}).UseWindowsService().UseSystemd();
}
логи для API создаются автоматически.
<logger name="Microsoft.AspNetCore" minLevel="None"* - ни на что не влияет(.
Обновлять. Спасибо Цян Фу. Правый nlog.config:
<logger name = "Microsoft.*" minLevel = "Trace" maxLevel = "Info" final = "true" />
<logger name = "Microsoft.*" minLevel = "Warn" maxLevel = "Fatal" writeTo = "file" final = "true" />
<logger name = "*" minLevel = "Info" writeTo = "file, kafka, console" />
Привет. Я сделал это.
Не совсем. В вопросе нет кода. Как настроить Microsoft.Extensions.Logging для использования NLog? Если вы используете NLog напрямую вместо ILogger .NET, настройки конфигурации .NET не будут иметь никакого эффекта, а минимальный уровень равен Info
Мне жаль. Сделанный.
Настройки приложения влияют на регистратор по умолчанию, а не на Nlog. Вам необходимо изменить Nlog.config следующим образом:
<rules>
<logger name = "Microsoft.*" minLevel = "Trace" maxLevel = "Fatal" final = "true" />
<logger name = "*" minLevel = "Info" writeTo = "file, kafka, console" />
</rules>
MinLevel и maxLevel для «Microsoft.*» должны включать все уровни. (След: 0, Фатальный: 6)
Если вам нужна конфигурация «запись только на консоль >= уровень ошибки (4)», вы можете настроить следующим образом: (Также вам необходимо настроить все уровни «Microsoft.*». Если нет, левые уровни будут использовать «*» настройки)
<rules>
<logger name = "Microsoft.*" minLevel = "Trace" maxLevel = "Warning" final = "true" />
<logger name = "Microsoft.*" minLevel = "Error" maxLevel = "Fatal" writeTo = "console" final = "true" />
<logger name = "*" minLevel = "Info" writeTo = "file, kafka, console" />
</rules>
Как выглядят ваши настройки приложения и/или конфигурация NLog для ведения журнала? Как выглядела ваша попытка настроить его? Пожалуйста, отредактируйте это в свой вопрос.