Serilog 를 이용해 Seq 서버에 로그를 남기고 있는데 UseSerilogRequestLogging설정을 해놓으니
app.UseSerilogRequestLogging();
HTTP GET / HTTP POST / blazor 관련 로그가 너무 많이 남고 있어 정작 봐야 할 로그가 보기가 힘들었습니다.
[14:15:44 INF] Request starting HTTP/2 GET https://localhost:5001/
[14:15:44 INF] Executing endpoint '/Index'
[14:15:45 INF] Route matched with {page = "/Index"}. Executing page /Index
[14:15:45 INF] Executing handler method SerilogRequestLogging.Pages.IndexModel.OnGet - ModelState is Valid
[14:15:45 INF] Executed handler method OnGet, returned result .
[14:15:45 INF] Executing an implicit handler method - ModelState is Valid
[14:15:45 INF] Executed an implicit handler method, returned result Microsoft.AspNetCore.Mvc.RazorPages.PageResult.
[14:15:45 INF] Executed page /Index in 124.7462ms
[14:15:45 INF] Executed endpoint '/Index'
# Additional Log from Serilog
[14:15:45 INF] HTTP GET / responded 200 in 249.6985 ms
# Standard logging from ASP.NET Core infrastructure
[14:15:45 INF] Request finished in 274.283ms 200 text/html; charset=utf-8
그런데 Error 로그는 봐야하기에 아래처럼 처리하면 Error 를 제외하고는 Blazor, HTTP 로그가 남지 않습니다.
1. 코드에서 처리
Program.cs 파일에 아래 두 가지 항목을 추가합니다.
.MinimumLevel.Override("Microsoft.AspNetCore", LogEventLevel.Error)
.MinimumLevel.Override("Serilog.AspNetCore", LogEventLevel.Error)
2. Configuration 으로 처리
appsettings.json 파일에서는 아래와 같이 처리하면 됩니다.
{
"Serilog": {
"MinimumLevel": {
"Default": "Information",
"Override": {
"Microsoft": "Information",
"Microsoft.AspNetCore": "Error",
"Serilog.AspNetCore": "Error"
}
}
},
"AllowedHosts": "*"
}
(좀 더 상세하게는 "Selilog.AspNetCore.RequestLoggingMiddleware":"Error" 로 처리합니다.)
두 가지 방법 중 편한 방법으로 처리하면 됩니다.
참고
https://andrewlock.net/using-serilog-aspnetcore-in-asp-net-core-3-reducing-log-verbosity/
쿠버네티스 환경의 Blazor 애플리케이션에서 Client 실제 IP 남기는 방법 (0) | 2024.10.29 |
---|---|
Blazor reconnection 메세지 줄이는 방법 (0) | 2024.10.24 |
Blazor iFrame 내에 포함될 수 있게 하기 - Content Security Policy (CSP) (0) | 2024.10.21 |
Blazor App 을 GitHub Action 으로 CI/CD 하기 (0) | 2024.10.16 |
Blazor 에서 OllamaSharp 이용해 Ollama 모델로 채팅하기 (0) | 2024.09.30 |