상세 컨텐츠

본문 제목

C# Log4Net 사용법과 디테일 #이거하나로끝낸다

IT 정보

by 내행복 2023. 11. 17. 16:58

본문

1. Nuget을 통해서 Log4Net을 추가 한다.

 

 

2. 프로젝트 탐색기 - 프로젝트 우클릭 - 추가 - 구성요소 - 애플리케이션 구성파일(xxxx.config) - 추가

파일명은 App.config 또는 Web.config

(파일명이 다르다면, 글 뒤에 명시적으로 해결법 있습니다.)

대표사진 삭제

사진 설명을 입력하세요.

 

 

3. 구성 파일에 아래 내용 복/붙

기본적인 분석에 대해서는 설명하지 않겠습니다.

다만, <configSections>은 그 어떤 설정보다 최상단에 있어야 합니다.

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

	<log4net>
		<appender name="FileAppender" type="log4net.Appender.RollingFileAppender">
			<file value="log-file.log" />
			<appendToFile value="true" />
			<rollingStyle value="Size" />
			<maxSizeRollBackups value="5" />
			<maximumFileSize value="10MB" />
			<staticLogFileName value="true" />
			<layout type="log4net.Layout.PatternLayout">
				<conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
			</layout>
		</appender>

		<root>
			<level value="DEBUG" />
			<appender-ref ref="FileAppender" />
		</root>
	</log4net>
</configuration>
 

 

4. Log4Net을 사용, 시작 하려는 클래스 최상단에 변수 선언

해당 코드는 using 또는 Import 했다면,

<명시 된> 라이브러리명은 삭제해서 코드를 함축 시킬 수 있습니다.

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

 

 

5. 프로그램 Main 또는 시작 부분에 <초기화>

log4net.Config.XmlConfigurator.Configure();
 

단, 파일명을 임의로 만들었따면, 아래 코드를 사용한다

log4net.Config.XmlConfigurator.Configure(new FileInfo("log4net.config"));
 

위와 같이 new FileInfo("log4net.config") 명시한다.

 

 

6. 사용 방법

사용법은 아래와 같다.

log.Info("정보 메시지");
log.Debug("디버그 메시지");
log.Warn("경고 메시지");
log.Error("오류 메시지");
log.Fatal("치명적 오류 메시지");
 

 

7. 디테일

Log4Net 설정파일을 보면 로그 레벨을 볼 수 있다.

  <level value="DEBUG" />
 

여기서 말하는 레벨은 <단계>가 존재 한다.

단계는 아래 순서와 같다.

로그 레벨은 다음 순서대로 낮은 순서에서 높은 순서로 정렬됩니다:

DEBUG < INFO < WARN < ERROR < FATAL.

설정된 레벨보다 낮은 레벨의 로그는 출력되지 않습니다.

 

예를들어서,

만약 현재 설정이 DEBUG 레벨로 되어 있다면,

DEBUG 레벨에 속하는 모든 로그 메시지(DEBUG, INFO, WARN, ERROR, FATAL)가 출력됩니다.

 

INFO 레벨을 포함하여 더 높은 레벨의 로그만 출력하고 싶다면,

설정 파일에서 로그 레벨을 INFO로 변경해야 합니다.

이 설정을 적용하면 INFO, WARN, ERROR, FATAL 레벨의 로그가 출력됩니다.

DEBUG 레벨의 로그는 더 이상 출력되지 않습니다.

 

도움이 되셨다면 좋아요, 댓글 부탁드립니다.

 

감사합니다.

 

관련글 더보기