개요
.net 으로 구현해서 운영 중인 서비스에서 Serilog 를 사용해 Mssql 데이터베이스에 로그를 저장하고 있습니다.
로그 정보 중에 로그 시간의 경우 UTC 로 저장되고 있기 때문에
브라우저에서 로그 기록을 확인할 때 Local 시간으로 변환해서 보여줄 필요가 있습니다.
구현 방법
확장 메서드에서 로그 시간을 커스터마이징 할 수 있는 파라메터가 추가되면서 간단하게 해결이 가능해졌습니다.
다음과 같이 UTC 와 Local 의 Offset 을 계산해서 변환하는 Func 을 생성한 다음 파라메터로 전달하면 됩니다.
builder.Services.AddSerilogUi(options =>
{
var offset = TimeZoneInfo.Local.GetUtcOffset(DateTime.UtcNow);
Func<string, DateTime>? dateTimeCustomParsing = (orgDateStr) =>
{
return Convert.ToDateTime(orgDateStr).Add(offset).ToUniversalTime();
};
options.UseSqlServer(dbConStr, "Table1", DBSchemaName, dateTimeCustomParsing)
.UseSqlServer(dbConStr, "Table2", DBSchemaName, dateTimeCustomParsing);
});
0 Comments