[C# 문법] Log4Net 사용하여 Log 남기기


안녕하세요~~

 

오늘은 C#에서 Log를 남기는 방법에 대해서 알려드리고자 해요.

 

Log를 남기는 방법은 여러가지 방법이 있겠지만, 오늘은 Log4Net을 이용하여 로그를 남기는 방법에 대해서 설명 드리고자 해요.

 

먼저 Log4Net을 이용하여 로그를 남기려면 Log4Net.DLLNuget을 이용하여 다운로드 받아야 합니다.

 

다운로드 받는 방법은 다음과 같습니다.

 

1. NuGet 패키지 열기



 

2. Apach Log4Net.dll 다운로드



찾아보기 -> Log4Net 검색 -> Log4Net 다운로드 진행 하시면 되겠습니다.


3. 참조 - > Log4Net.dll 참조 완료





 

여기까지 모두 완료 하셨다면 이제 Log4Net을 사용하기 위한 준비는 다 끝났습니다.

 

지금부터는 실제 로그를 남기기 위해 소스 코드를 작성하도록 하겠습니다.

 

Log4Net을 사용하려면 App.Config 파일에 설정값들을 셋팅을 해 주어야 합니다.

여기서 어떤 경로에 Log를 생성을 하고 저장을 할 지 사용자가 원하는 대로 설정을 해주시면 됩니다.


 

App.Config


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

<?xml version="1.0" encoding="utf-8" ?>

<configuration>

    <startup> 

        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />

    </startup>

  

  <log4net>

    <appender name="Console" type="log4net.Appender.ConsoleAppender">

      <layout type="log4net.Layout.PatternLayout">

        <conversionPattern value="[%date] %message%n" />

      </layout>

 

    </appender>

 

    <appender name="RollingFile" type="log4net.Appender.RollingFileAppender">

      <file value="D:/Log/test.log" />

      <appendToFile value="true" />

      <datePattern value='"."yyyyMMdd""' />

      <rollingStyle value="Composite" />

      <maxsizerollbackups value="100" />

      <maximumFileSize value="1024KB" />

      <PreserveLogFileNameExtension value="true" />

      <layout type="log4net.Layout.PatternLayout">

        <ConversionPattern value="[%date] %message%n" />

      </layout>

    </appender>

 

  </log4net>

 

  

</configuration>

Colored by Color Scripter

cs

 


속성 설명


file: 파일명 및 경로

datePattern: 날짜 작성 방식

maxSizeRollBackups: 백업 파일 개수 제한 (맥스 파일 갯수가 넘어가면 전의 파일이 삭제됨)

maximumFileSize : 백업 파일의 크기 제한

layout conversionPattern로그에 쓰이는 문구 셋팅

root level: value값 이상의 로그 레벨을 씀

root appender-ref ref=”해당값해당값의 appender name을 찾아 실행함속성을 설정한 appender의 이름과 반드시 동일해야 합니다.


예제 코드


using log4net;

using log4net.Config;

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

[assembly: log4net.Config.XmlConfigurator(Watch = true)]

namespace WindowsFormsApplication1

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

        private void Form1_Load(object sender, EventArgs e)

        {

            XmlConfigurator.Configure(new System.IO.FileInfo("App.config"));

            ILog log = LogManager.GetLogger(typeof(Form1));

            while (true)

            {

                log.Info("Log4Net Info");

                log.Debug("Log4Net Debug");

                log.Warn("Log4Net Warn");

                log.Error("Log4Net Error");

                log.Fatal("Log4Net Fatal");

            }

        }

    }

}


실행 결과



 


이처럼 로그가 해당 경로에 제대로 기록 된 것을 확인 하실 수 있습니다.

 

감사합니다ㅎㅎ


728x90

이 글을 공유하기

댓글

Designed by JB FACTORY