C# WPF log4net 적용 – 설정 파일을 사용하는 방법

이 Post 는 C# 혹은 WPF 프로젝트에서 파일 로그를 남기기 위해 log4net 을 적용하는 방법을 설명 합니다.

우선 이번 Post 에서는 xml 설정파일을 사용하는 가장 기초적인 방법을 설명하며, 이는 이후 Posting 할 예정인
1. 로그 경로를 동적으로 설정하는 방법 – 설정 파일 없이 동적으로 log4net 을 설정하는 방법
2. 일반적인 방법으로 불가능한 Trace, Verbose 로그를 남기기 위한 설정 방법을 설명하기 위한 첫 번째 글 입니다.

1. 프로젝트에서 Nuget 패키지 관리자 창 열기

프로젝트에서 마우스 우클릭 후 Context Menu 에서 NuGet 패키지 관리 메뉴를 클릭

2. log4net 설치

Nuget 창에서 찾아보기를 클릭한 후 log4net 을 입력 후 엔터
검색 결과에서 log4net 을 선택한 후 설치 버튼을 클릭

3. 설정 파일 생성

3.1. 프로젝트에서 마우스 우클릭 후 [추가] – [새항목] 을 선택
3.2. 검색 상자에 구성을 클릭 후 엔터
3.3. 검색 결과에서 애플리케이션 구성 파일 선택
3.3. 이름에 log4net.config 를 입력 후 추가 버튼을 클릭

4. log4net.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
	<log4net>
		<root>
			<!--
			Reference: log4net.Core.Level
			<level value="OFF"/>
			<level value="FATAL"/>
			<level value="ERROR"/>
			<level value="WARN"/>
			<level value="INFO"/>
			<level value="DEBUG"/>
			<level value="TRACE"/>
			<level value="VERBOSE"/>
			<level value="ALL"/>
			-->
			<level value="DEBUG"/>
			<appender-ref ref="file"/>
		</root>
		<appender name="file" type="log4net.Appender.RollingFileAppender">
			<file value="D:\\Log\\BlogDemo00.log" />
			<datePattern value=".yyyy-MM-dd" />
			<appendToFile value="true" />
			<rollingStyle value="Date" />
			<staticLogFileName value="true" />
			<encoding value="utf-8" />
			<layout type="log4net.Layout.PatternLayout">
				<conversionPattern value="[%date][Thread : %thread][%level][%logger] %message%newline" />
			</layout>
		</appender>
	</log4net>
</configuration>

4.1. file value 에는 원하는 경로를 입력
4.2. level value 에는 원하는 로그 레벨을 입력

5. AssemblyInfo.cs 수정

5.1. 프로젝트 아래 Properties 아래 AssemblyInfo.cs 더블클릭
5.2. 가장 아래 다음 코드 추가

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]

6. 로그 파일 확인

C# 혹은 WPF 에서 로깅을 위해 사용하는 log4net 의 가장 기본적인 설정법을 알아 봤습니다.

하지만 대부분에 경우 로그 경로를 특정 경로로 지정하지 않는 경우가 많습니다.

특히 일반적인 응용 프로그램은 프로그램이 존재하는 경로 아래 log 폴더를 만들고 거기에 로그를 저장하는 경우가 많습니다.

또한 Debug 와 Release 에 로그 레벨을 다르게 지정하여 배포 로그 레벨과 디버그 로그 레벨을 다르게 하는 경우가 많습니다.

하지만 설정 파일을 사용하게 되면 이와같은 설정이 불가능 합니다.

다음 포스팅에서는 설정 파일을 사용하지 않고 동적으로 log4net 을 설정하는 방법을 확인해 보겠습니다.

.

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤