[ASP.NET CORE/MVC] 홈페이지 제작 #2 Log4net설정하기

프로젝트 환경
OS : Windows 10
IDE : Visual Studio Code 1.69.1
.Net SDK : 6.0.302
.Net Runtime : .NetCore.App 6.0.7
DataBase : PostgreSQL 14
안녕하세요 미나라이 입니다.
이번 포스팅에서는 프로젝트의 로그를 남길 수 있는 Log4net을 설정하는 내용을 포스팅 하겠습니다.
Log4Net설치
VSCode의Extensions탭을 선택하고 Nuget이라고 검색합니다.
그럼 아래 이미지와 같은 패키지가 있는데 설치를 진행합니다.

설치를 완료하셨다면 Nuget Package에 있는 라이브러리를 다운로드 받기 위해 단축키
Ctrl + Shift + P를 누릅니다.
해당 키를 입력하면 아래와 같은 목록이 뜹니다.
여기서 Nuget Package Manager: Add Package를 선택합니다.

그럼 이렇게 어떤 패키지를 찾는지 입력 창이 뜨는데 아래의 명령어를 입력 해 줍니다.
Microsoft.Extensions.Logging.Log4Net.AspNetCore
입력을 완료하면 엔터를 눌러줍니다.

그럼 이렇게 라이브러리를 선택 할 수 있게 되는데 선택을 해 줍니다.

그럼 버전을 선택하는 메세지가 나오는데 버전은 현재 시점의 가장 최신인 6.1.0을 받겠습니다.

Config파일 등록
Log4net홈페이지에서 config파일을 복사해서 프로젝트 루트 경로에 붙혀넣어 줍니다.
단순하게 파일을 만들어서 내용을 복사 붙혀넣기 해도 됩니다.

log4net.config
<?xml version="1.0" encoding="utf-8" ?>
<log4net>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" >
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
</layout>
</appender>
<appender name="AppendFile" type="log4net.Appender.RollingFileAppender">
<file value="F:/dotnet/Log/CinemaProject/" />
<datepattern value="yyyy-MM-dd.'txt'"/>
<staticlogfilename value="false"/>
<appendtofile value="true"/>
<rollingstyle value="Composite"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %5level %logger.%method [%line] - MESSAGE: %message%newline %exception" />
</layout>
</appender>
<root>
<level value="ALL"/>
<appender-ref ref="ConsoleAppender" />
<appender-ref ref="AppendFile" />
</root>
</log4net>
Config파일의 설정 방법은 아래 링크를 참고 해 주세요
Apache log4net – Apache log4net Manual: Configuration - Apache log4net
Apache log4net™ Manual - Configuration Configuration Inserting log requests into the application code requires a fair amount of planning and effort. Observation shows that approximately 4 percent of code is dedicated to logging. Consequently, even modera
logging.apache.org
소스코드에 적용
설치와 Config파일설정을 완료했으니 기본 설정을 해야죠
Program.cs
MVC프로젝트를 생성하면 기본적으로 만들어지는 파일입니다.
여기에 아래와 같이 설정을 추가 해 줍니다.
여기에 설정을 하면 프로그램 실행시 로그를 출력 및 작성 할 수 있게 됩니다.

using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.Log4Net.AspNetCore;
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
//builder.Services.AddControllersWithViews();
builder.Services.AddMvc();
// Session Setting
builder.Services.AddSession(options => {
options.Cookie.Name = "CinemaProject";
options.IdleTimeout = TimeSpan.FromHours(1);
});
// Log4net
builder.Logging.AddLog4Net();
로그 작성하기
이제 각각의 소스파일에서 로그를 어떤식으로 작성하는지 확인 해 보겠습니다.
컨트롤러에서 로그를 호출하는 방법입니다.
// log4net
private static readonly log4net.ILog logger = LogManager.GetLogger(typeof(HomeController));
public IActionResult Index()
{
logger.Info("Logtest");
return View();
}

로그 출력 확인
콘솔 출력 확인
프로그램을 실행해서 로그가 출력되는지 확인 해 봅시다.
콘솔에 로그가 찍혀있는 것을 확인 할 수 있습니다.

파일 출력 확인
아까 Config에 파일 출력도 같이 설정했기 때문에 파일에도 출력이 잘 되는지 확인 해 봅시다.
파일이 생성되었네요

내용물도 잘 출력된 것을 확인 할 수 있습니다.

이상으로 간단하게 ASP.NET MVC프로젝트에 Log를 설정하는 방법에 대해서 알아보았습니다.
'ASP.NET&C# > ASP.NET MVC' 카테고리의 다른 글
[ASP.NET CORE/MVC] 홈페이지 제작 #4 베이스 컨트롤러 / 싱글톤 패턴을 이용해서 서비스 만들기 (0) | 2022.08.14 |
---|---|
[ASP.NET CORE/MVC] 홈페이지 제작 #3 파일 읽기로 간단하게 init파일 모듈 만들기(프로퍼티 파일) (0) | 2022.08.13 |
[ASP.NET CORE/MVC] 홈페이지 제작 #1 개발 환경 구축 (0) | 2022.07.24 |
[ASP.NET/MVC CORE] #15 세션으로 로그인 페이지를 구현 (0) | 2021.12.26 |
[ASP.NET/MVC CORE] #14 MIME 맵핑하기 (0) | 2021.12.21 |