본문 바로가기

ASP.NET&C#/ASP.NET MVC

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

[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를 설정하는 방법에 대해서 알아보았습니다.

728x90
반응형