ASP.NET Core: как отключить ведение журнала для статических файлов?
Я использую ASP.NET Core 2.2 с Angular 8 для своего проекта,
Я обслуживаю статические файлы angular из моего основного проекта.net с использованием расширений SPA, например:
public void ConfigureServices(IServiceCollection services)
{
services.AddSpaStaticFiles(options =>
{
options.RootPath = "ClientApp/dist";
});
}
public void Configure(IApplicationBuilder app){
app.UseSpa(spa =>
{
spa.Options.SourcePath = "ClientApp";
});
}
Моя проблема в том, что мои журналы содержат все запросы, касающиеся внутреннего или внешнего сервера, то есть я нахожу много журналов для маршрутов, например:
https://example.com/index.html
https://example.com/assets/images/logo.svg
Что действительно раздражает, мне не нужны логи внешнего сервера (статические файлы)!
У меня есть один общий регистратор в моем пользовательском промежуточном программном обеспечении, определенный следующим образом:
public CustomRequestMiddleware(RequestDelegate next, ILoggerFactory loggerFactory)
{
_next = next;
_logger = loggerFactory.CreateLogger("My Logger");
}
Я могу отключить его журналы из файла appsettings.json следующим образом:
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Debug",
"System": "None",
"Microsoft": "None",
"Hangfire": "None",
"My Logger": "None"
}
}
Но проблема в том, что этот регистратор используется для всех запросов к системе, включая журналы внешнего интерфейса (статические файлы) и серверного интерфейса (API), и мне нужно только отключить ведение журнала для журналов внешнего интерфейса.
Есть ли способ фильтровать журналы?
1 ответ
Вы можете решить проблему, добавив код «Microsoft.AspNetCore.Hosting.Diagnostics»: «None» в раздел журнала файла appsetting.json.