관리 메뉴

웹개발자의 기지개

[ASP.Net Core] SeriLog 로그 작업하기 본문

ASP.NET/ASP.NET Core

[ASP.Net Core] SeriLog 로그 작업하기

http://portfolio.wonpaper.net 2023. 9. 13. 15:34

https://github.com/serilog/serilog

 

GitHub - serilog/serilog: Simple .NET logging with fully-structured events

Simple .NET logging with fully-structured events. Contribute to serilog/serilog development by creating an account on GitHub.

github.com

 

NuGet 패키지에 알맞게 추가 설치한다.

 

[ appsettings.json ]

 

  //log
  "Serilog": {
    "Using": [ "Serilog.Sinks.File" ],
    "MinimumLevel": {
      "Default": "Information"
    },
    "WriteTo": [
      {
        "Name": "File",
        "Args": {
          "path": "../logs/.log",
          "rollingInterval": "Day",
          "outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} {CorrelationId} {Level:u3} {Username} {Message:lj}{Exception}{NewLine}"
        }
      }
    ]
  },

 

[ Programs.cs ]

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
using Serilog;
 
var builder = WebApplication.CreateBuilder(args);
 
//log
var logger = new LoggerConfiguration()
  .ReadFrom.Configuration(builder.Configuration)
  .Enrich.FromLogContext()
  .CreateLogger();
builder.Logging.ClearProviders();
builder.Logging.AddSerilog(logger);
 
var startup = new Startup(builder.Configuration);
startup.ConfigureServices(builder.Services); // calling ConfigureServices method
var app = builder.Build();
startup.Configure(app, builder.Environment); // calling Configure method
cs

로그 내용이 ../logs/ 폴더에 날짜별로 주욱 쌓인다.

 

그런데 만약 특정 부분에서 사용자 정의로 log 텍스트를 생성시켜 놓고 싶다면

 

ILogger<SportsController> logger 종속성주입처리한다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
public class SportsController : Controller
{
    private readonly IConfiguration _config;
    private readonly IDbConnection con;
 
    private readonly WebDbContext db;
 
    private readonly WebMemberRepository webMemRep;
 
 
    private readonly ILogger<SportsController> _logger;
 
    public SportsController(IConfiguration config, WebDbContext db, WebMemberRepository webMemRep, ILogger<SportsController> logger)
    {
        _config = config;
        con = new SqlConnection(_config.GetSection("ConnectionStrings")
            .GetSection("SpolifeSCW2_Web").Value);
 
        this.db = db;
        this.webMemRep = webMemRep;
 
        _logger = logger;
    }
 
    [HttpGet]
    public IActionResult Index()
    {
        string str = "반갑습니다.";
        _logger.LogInformation("[결제신청1] " + str);
 
    }
}
cs

 

 

 

 

 

 

 

참고 : https://askforyou.tistory.com/70

 

 

 

Comments