클리엘
CLIEL LAB
클리엘
전체 방문자
117,082
오늘
313
어제
116
  • 분류 전체보기 (396)
    • Mobile (47)
      • Kotlin (47)
    • Web (84)
      • NestJS (9)
      • HTML5 & CSS3 (38)
      • Javascript (20)
      • TypeScript (6)
      • JQuery (11)
    • .NET (187)
      • C# (24)
      • ASP.NET Core (31)
      • Windows API for .NET (128)
    • Server (50)
      • SQL Server (8)
      • MariaDB (18)
      • Windows Server (5)
      • node.js (19)
    • System (12)
      • 작업LOG (12)
    • Review (11)
    • ETC (5)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 블로그 정리

인기 글

  • [C#] Thread(스레드)와 Task(태⋯
    2021.10.24
    [C#] Thread(스레드)와 Task(태⋯
  • [C#] TCP/IP 통신
    2021.10.28
    [C#] TCP/IP 통신
  • [ASP.NET Core] IIS 배포 (게시)
    2021.12.15
    [ASP.NET Core] IIS 배포 (게시)
  • [MSSQL] MS SQL Server 다운로⋯
    2022.02.23
    [MSSQL] MS SQL Server 다운로⋯
  • [C#] 인터페이스와 추상클래스
    2021.10.07
    [C#] 인터페이스와 추상클래스

태그

  • Windows API
  • apache nifi
  • JavaScript
  • CentOS
  • CSS3
  • 변수
  • asp.net core web api
  • c#
  • asp.net core
  • HTML5
  • TypeScript
  • node.js
  • jQuery
  • Kotlin
  • Cookie
  • android studio
  • android
  • NestJS
  • MariaDB
  • class

최근 댓글

  • 흠... CACLS는 더이상 사용하지⋯
    클리엘
  • 안녕하세요! 아래 명령 하고부⋯
    방문자
  • 죄송합니다. 관련글을 작성한지⋯
    클리엘
  • 네 맞습니다. 본문에서는 표기⋯
    클리엘
  • 6000 ms 는 6초아닌가요?
    react

최근 글

  • [TypeScript] Visual Studio에⋯
    2022.05.06
    [TypeScript] Visual Studio에⋯
  • [C#] 함수(메서드)의 실행과 디⋯
    2022.05.06
    [C#] 함수(메서드)의 실행과 디⋯
  • [C#] 흐름제어, 형변환, 예외처리
    2022.04.27
    [C#] 흐름제어, 형변환, 예외처리
  • [C#] C# 개요
    2022.04.20
    [C#] C# 개요
  • C#과 .NET6 시작하기
    2022.04.13
    C#과 .NET6 시작하기

티스토리

hELLO · Designed By 정상우.
클리엘

CLIEL LAB

[ASP.NET Core] Logging
.NET/ASP.NET Core

[ASP.NET Core] Logging

2021. 11. 13. 01:53
728x90

1. NuGet Package 설치

 

NuGet에서 etEscapades.Extensions.Logging.RollingFile package를 project에 설치합니다.

2. Log File 설정

 

Program.cs를 다음과 같이 수정해 ConfigureLogging method를 설정합니다.

Host.CreateDefaultBuilder(args)
    .ConfigureLogging((hostingContext) => hostingContext.AddFile(options =>
    {
        options.FileName = "log-";
        options.LogDirectory = "Logs";
        options.FileSizeLimit = null; //기본 10MB, 단위 MB
        options.RetainedFileCountLimit = null; //기본 2개
    }))
    .ConfigureWebHostDefaults(webBuilder =>
    {
        webBuilder.UseStartup<Startup>();
    });

FileName은 Log File이 생성될 때 File명 앞에 붙을 접두사를 의미합니다. LogDirectory는 Log File이 생성될 Folder를 의미하여 최대로 생성될 Log File의 크기는 FileSizeLimit에서 설정합니다. 만약 값을 설정하지 않는다면 기본 10MB로 제한되며 null이 지정된다면 무제한이 됩니다. 마지막으로 RetainedFileCountLimit는 최대로 생성될 Log File의 개수를 의미하는데 이것 역시 null로 설정하면 무제한으로 인식됩니다.

 

3. Log 설정

 

Startup.cs 파일에는 다음과 같이 Log와 관련된 설정사항을 추가합니다.

services.AddLogging(builder =>
{
    builder.AddConfiguration(Configuration.GetSection(key: "Logging"));
    builder.AddConsole();
    builder.AddDebug();
});

여기에서 key로 지정된 "Logging"은 appsetting.json에 있는 Logging설정을 의미하여 appsetting.json에서의 설정이 그대로 사용될 수 있음을 알 수 있습니다.

 

4. Log 남기기

 

실제 Logging을 사용하려면 우선 Controller에서 생성자 주입을 통해 Logger의 객체를 생성할 수 있도록 합니다.

private readonly ILogger<HomeController> _logger;

public HomeController(ILogger<HomeController> logger)
{
    _logger = logger;
}

위와 같이 하면 _logger을 통해 전역적으로 Logging method를 사용할 수 있게 되는데 만약 특정 Action method에서만 Logging을 사용하는 경우라면 Action method에서 의존성 주입을 통해 같은 방법으로 Logger의 객체를 생성할 수 있습니다.

public IActionResult Index([FromServices] ILogger<HomeController> logger)
{
    return View();
}

위와 같이 객체가 생성되고 난 후 실제 Log를 남기려면 LogInformation()이나 LogError()등 상황에 맞는 method를 호출하여 필요한 Log를 남기면 됩니다.

public IActionResult Index()
{
    _logger.LogInformation("로그입니다.1");
    _logger.Log(LogLevel.Information, "로그입니다.2");

    return View();
}

생성된 Log는 위에서 설정한 Folder를 통해 확인할 수 있습니다.

728x90
저작자표시비영리변경금지

'.NET > ASP.NET Core' 카테고리의 다른 글

[ASP.NET Core] Razor Page로 웹프로젝트 만들기  (0) 2022.01.24
[ASP.NET Core] Session  (0) 2021.11.14
[ASP.NET Core] Logging  (0) 2021.11.13
[ASP.NET Core] Claim 인증과 권한  (0) 2021.11.11
[ASP.NET Core] 암호화 사용하기(DataProtection)  (0) 2021.11.07
[ASP.NET Core] SQL 사용하기  (0) 2021.11.05
    '.NET/ASP.NET Core' 카테고리의 다른 글
    • [ASP.NET Core] Razor Page로 웹프로젝트 만들기
    • [ASP.NET Core] Session
    • [ASP.NET Core] Claim 인증과 권한
    • [ASP.NET Core] 암호화 사용하기(DataProtection)
    asp.net core, logging
    클리엘
    클리엘
    누구냐 넌?
    댓글쓰기
    다음 글
    [ASP.NET Core] Session
    이전 글
    [ASP.NET Core] Claim 인증과 권한
    • 이전
    • 1
    • ···
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • ···
    • 396
    • 다음

    티스토리툴바