2022. 12. 19. 00:00ㆍASPNET/ASPNET 7
Create
visual studio 2022 를 실행하고 Create a new project 를 선택한다.
asp.net core web api 선택
Project name 정하기
Additional Information 설정
Create 하면 Project 가 생성된다.
F5 를 누르면 실행 된다.
위와 같이 swagger 를 통해 test 를 할 수 있는 화면이 나오면 성공한 것이다.
이제 이곳에 Logging 을 처리해 보자
아래파일로 이동하자
Controllers/WeatherForecastController.cs
Get 함수를 다음과 같이 수정해 보자
[HttpGet(Name = "GetWeatherForecast")]
public IEnumerable<WeatherForecast> Get()
{
_logger.LogInformation("Weather Forcast 실행"); // logger 추가
return Enumerable.Range(1, 5).Select(index => new WeatherForecast
{
Date = DateOnly.FromDateTime(DateTime.Now.AddDays(index)),
TemperatureC = Random.Shared.Next(-20, 55),
Summary = Summaries[Random.Shared.Next(Summaries.Length)]
})
.ToArray();
}
f5 를 눌러 실행 한뒤 swagger 에서 Test 해보자
Console 화면에 아래와 같은 log 가 찍힌다.
이 Log 는 Console 창에만 나타나니 file 에 저장 하기 위해 3rd party library 를 이용하자
우리는 여기서 Selilog 를 이용할 것이다.
Selilog 를 이용한 FileLogging
Ctrl + ` 또는 View --> Terminal click --> 개발자 명령 프롬프트로 이동
개발자 명령 프롬프트에서 프로젝트 폴더로 이동
**이미 프로젝트 폴더에 있다면 이동하지 않아도 된다.**
(현재 [솔루션명].sln 파일이 있는 폴더라면 [프로젝트명].csproj 파일이 있는 폴더로 이동)
다음 실행
dotnet add package Serilog.AspNetCore
dotnet add package Serilog.Expressions
dotnet add package Serilog.Sinks.Seq
Program.cs 에 다음 코드 추가
using Serilog;
var configurationBuilder = new ConfigurationBuilder()
.AddJsonFile("appsettings.json", false, true)
.AddJsonFile($"appsettings.Development.json", optional: true)
.Build();
Log.Logger = new LoggerConfiguration()
.ReadFrom.Configuration(configurationBuilder)
.CreateBootstrapLogger();
...
builder.Host.UseSerilog((context, configuration) => configuration
.ReadFrom
.Configuration(context.Configuration));
appsettings.json 수정
{
"Serilog": {
"MinimumLevel": {
"Default": "Information",
"Override": {
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information",
"System": "Warning"
}
},
"WriteTo": [
{ "Name": "Console" },
{
"Name": "File",
"Args": {
"path": "./logs/ApiServer.log",
"rollingInterval": "Day"
}
}
]
},
"AllowedHosts": "*"
}
다시 컴파일 한 후 실행하여 swagger 를 통해 test 해보면 solution 에 logs 폴더가 생긴걸 알수 있다.
그 아래 ApiServer{yyyyMMdd}.log 파일이 생성되어 있을 것이다.
log 내용은 Console 에 찍혀 있는 내용이 표시 될 것이다.
관련영상
'ASPNET > ASPNET 7' 카테고리의 다른 글
Rest API Template 만들기 - EP 03 (Dependency Injection, Scrutor) (0) | 2022.12.26 |
---|---|
Rest API Template 만들기 - EP 02 (Vertical Slice, MediatR) (0) | 2022.12.22 |
gRPC HealthCheck (0) | 2022.12.15 |
ASPNET 7 - Endpoint Filter (0) | 2022.12.12 |
ASPNET 7 - Authentication (0) | 2022.12.08 |