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 레벨의 로그는 더 이상 출력되지 않습니다.
도움이 되셨다면 좋아요, 댓글 부탁드립니다.
감사합니다.
C# NotifyIcon 여러개 생기는 문제 해결방법 (0) | 2023.11.17 |
---|---|
C# async 와 await 정리 (0) | 2023.11.17 |
이클립스 기반 STS에서 코드 실시간 반영 및 적용하기 (0) | 2023.08.15 |
STS - MySQL8 접속 Properties (0) | 2023.08.15 |
STS - No default constructor for entity (0) | 2023.08.15 |