본문 바로가기
C#

Log4Net을 이용한 로그 기록

by Hwoarang757 2021. 9. 3.

출처입니다 : [C#]Log4Net 사용법 :: 시나공공 (tistory.com)

 

[C#]Log4Net 사용법

log4net 사용 관련 참고 사이트 : http://hind.pe.kr/1199 log4net 설정 관련 참고 사이트 : http://egloos.zum.com/empty79/v/2956254 C#에서 logging을 할때 손쉽고 편하게 사용할 수 있는 라이브러리를 소개하..

drt0927.tistory.com

 

1. 프로젝트에 Log4netConfig.xml 라는 명칭으로 , Log4net의 설정 파일을 1차로 작성 하였습니다.

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

  <log4net>
    <appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
      <param name="File" value="log\log.txt" />
      <param name="DatePattern" value="-yyyy-MM-dd"/>
      <param name="AppendToFile" value="true" />
      <param name="RollingStyle" value="Date"/>
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%d [%t] %-5p - %m%n" />
      </layout>
    </appender>
    <root>
      <level value="ALL"/>
      <appender-ref ref="RollingFile"/>
    </root>
  </log4net>

2.  Log를 Write 하는 static 클래스를 작성 하였습니다.... 제가 작성 한 예제 처럼 Class를 static으로 하지 말고 , 

log4net 인스턴스를 SingleTone 형태로 생성하는 것이 좋다고 생각합니다....

using System;
using System.Collections.Generic;
using System.Text;
//
using log4net;
using log4net.Config;
using System.Reflection;
using System.IO;

namespace TestProject
{
    public static class WriteLog
    {
        private static ILog _logger = null;
        //public ILog logger { get { return _logger; } }

        static WriteLog()
        {
            InitLogger();
        }

        private static void InitLogger()
        {
            string logWritePath = string.Format(@"{0}\{1}",Path.GetDirectoryName(Assembly.GetEntryAssembly().Location),"log");
            string log4ConfigPath = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location) + @"\" + "Log4netConfig.xml";

            if (!Directory.Exists(logWritePath))
                Directory.CreateDirectory(logWritePath);

            XmlConfigurator.Configure(new FileInfo(log4ConfigPath));
            
            _logger = log4net.LogManager.GetLogger("RollingFile");

            
        }

        public static void Debug(string log)
        {
            _logger.Debug(log);
        }

        public static void Info(string log)
        {
            _logger.Info(log);
        }

        public static void Error(string log)
        {
            _logger.Error(log);
        }

        public static void Error(string log, Exception exception)
        {
            _logger.Error(log, exception);
        }

    }
}

 

3. Log4netConfig.xml -> DatePattern 으로 설정시에  일별로 파일 분리 저장 되는 것을 확인 하였습니다.

log4net Example