본문 바로가기

Languague/.NET

.NET Log4net 날짜 별 로그 설정하기

.

.NET에서는 Log4net으로 로그를 간단하게 남길 수 있다.

1. NuGet 설치

  • 도구 > NuGet 패키지 관리자 > 솔루션용 NuGet 패키지 관리

 

 

2. web.config 설정

  • 프로젝트 구성 파일에 log4net 추가

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
  </configSections>

  <log4net>
    <appender name="Console" type="log4net.Appender.ConsoleAppender">
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%d [%t] %-5p %c - %m%n" />
      </layout>
    </appender>
    <appender name="LogFile" type="log4net.Appender.RollingFileAppender">
      <param name="File" value="Log\\log.txt" />
      <param name="AppendToFile" value="true" />
      <param name="RollingStyle" value="Date" />
      <param name="DatePattern" value="_yyyy-MM-dd&quot;.log&quot;" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%d [%t] %-5p %c - %m%n" />
      </layout>
    </appender>
    <appender name="ErrorFile" type="log4net.Appender.RollingFileAppender">
      <param name="File" value="Log\\error.txt" />
      <filter type="log4net.Filter.LevelRangeFilter">
        <param name="levelMin" value="ERROR" />
        <param name="levelMax" value="ERROR" />
      </filter>
      <param name="AppendToFile" value="true" />
      <param name="RollingStyle" value="Date" />
      <param name="DatePattern" value="_yyyy-MM-dd&quot;.log&quot;" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%d [%t] %-5p %c - %m%n" />
      </layout>
    </appender>
    <root>
      <level value="ALL" />
      <appender-ref ref="Console" />
      <appender-ref ref="LogFile" />
      <appender-ref ref="ErrorFile" />
    </root>
  </log4net>
</configuration>

  • Console Appender:
    • 이름: Console
    • 타입: log4net.Appender.ConsoleAppender
    • 레이아웃: 로그 이벤트를 출력할 때 사용할 형식을 정의한다 .
    • conversionPattern: %d [%t] %-5p %c - %m%n (해당 패턴은 날짜와 시간, 스레드, 로그 레벨, 카테고리, 메시지를 출력하도록 설정)
  • RollingFile Appender (LogFile 및 ErrorFile):
    • 이름: LogFile (로그 파일을 위한 것)
    • 이름: ErrorFile (에러를 기록할 파일을 위한 것)
    • 타입: log4net.Appender.RollingFileAppender
    • File: 로그를 저장할 파일 경로를 지정. 해당 부분은 Log\log.txt 및 Log\error.txt로 지정
    • AppendToFile: 기존 파일에 로그를 추가할지 여부. true로 설정되어 있으므로 로그가 파일 추가
    • RollingStyle: 로그 파일의 롤링 방식을 지정합니다. 여기서는 날짜(Date)별로 롤링
    • DatePattern: 생성된 로그 파일의 이름 패턴을 정의 "_yyyy-MM-dd.log"로 지정되어 있으므로 날짜 별로 로그 파일이 생성.
    • layout: 로그 이벤트를 출력할 때 사용할 형식을 정의합니다. Console Appender와 마찬가지로 PatternLayout을 사용하여 로그 형식을 지정.

3. Log4Net초기화

  • log4net을 사용하기 전에 초기화한다.
  • 웹 애플리케이션 시작 점인 Global.asax 추가
  • log4net.Config.XmlConfigurator.Configure();

4. 로그 처리

private static readonly ILog logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

테스트를 하기 위해 api 호출 시에 로그를 남기도록 해보자.

 

 

[결과]

  • 설정한 경로에 로그 파일 생성, TEST가 남겨진 것을 확인할 수 있으며, 프로젝트 구성 파일에 log4net 추가날짜 변경 후 확인 해보면 날짜가 롤링 되어 기록이 남겨진 것을 확인할 수 있다

300x250