log4net 튜토리얼
log4net 시작하기
수색…
비고
이 절에서는 log4net이 무엇인지, 그리고 왜 개발자가 그것을 사용하고 싶어하는지에 대한 개요를 제공합니다.
또한 log4net 내의 큰 주제를 언급하고 관련 주제에 링크해야합니다. log4net에 대한 문서는 새로운 것이므로 관련 주제의 초기 버전을 만들어야 할 수도 있습니다.
log4net 설정
간단한 Hello World 콘솔 응용 프로그램을 만들고 log4net을 사용하여 콘솔에 무엇인가를 기록하자. 이 프로그램이 실행되면 다음 예제에서 실제 개발 시나리오에서 사용할 수 있도록 확장 할 수 있습니다. 작게 시작해서 거기에서 지어 봅시다.
먼저 Visual Studio 및 WriteLine("Hello World") 에서 간단한 Console Project를 아래 그림과 같이 만들어야합니다.
다음으로 log4net 라이브러리를 프로젝트에 추가해야합니다. 그래서 References 를 오른쪽 클릭하고 Manage NuGet Packages를 선택해야합니다.
그런 다음 log4net을 검색하고 설치하십시오.
이제 우리 프로젝트에 log4net.dll을 성공적으로 추가했습니다.
이제 app.config (또는 웹 응용 프로그램 인 경우 web.config) 를 구성해야합니다. 이 부분은 약간 까다 롭지 만 당황하지 마십시오. 단계별로 실행하고 로깅하고 실행합니다.
app.config에서 먼저 구성 아래에 config 섹션을 만들어야합니다. 우리는 아래와 같이 이름과 유형을 제공해야합니다.
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,Log4net"/>
</configSections>
여기서 우리가 한 것은 log4net 이라는 설정 파일에 log4net 할 섹션을 생성한다는 것입니다. 로깅과 관련된 모든 것이 여기에 있습니다. 우리의 로그 파일을 만들 때부터 길게하는 방법과 어떤 정보를 기록해야하는지. 이제 log4net 섹션을 만들어 보겠습니다.
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,Log4net"/>
</configSections>
<log4net>
</log4net>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
</configuration>
우리가 log4net 섹션 아래에 추가 할 첫 번째 것은 appender입니다. appender는 기본적으로 로깅 도구입니다. 그것은 우리가 로그를 기록하고자하는 것입니다. 파일, 데이터베이스 등에 로그인하는 데 사용할 수있는 애펜더가 많이 있습니다.이 예에서는 콘솔 창에 로그인하므로 Console Appender를 만듭니다.
<log4net>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
</appender>
</log4net>
다음으로 레이아웃을 정의해야합니다.
<log4net>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
</layout>
</appender>
</log4net>
레이아웃에서 콘솔에 표시 할 내용과 표시 방법을 정의합니다. 이를 위해서는 전환 패턴이 필요합니다. 우리가 사용할 수있는 많은 다른 유형의 패턴이 있습니다.이 예제에서는 매우 간단한 패턴을 고수 할 것입니다.
<log4net>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date{ABSOLUTE} [%thread] %level %logger - %message%newline"/>
</layout>
</appender>
</log4net>
위에서 우리가 수행하는 작업은 절대 타임 스탬프, 예외를 throw하는 실행 스레드 및 로깅 수준과 같은 정보가 필요하다는 것입니다. log4net은 7 가지 로깅 수준을 제공합니다.
- OFF - 아무것도 기록되지 않습니다 (호출 할 수 없음).
- 치명적인
- 오류
- 경고
- 정보
- 디버그
- ALL - 모든 것이 기록됩니다 (호출 할 수 없음).
그러나 7에서 우리는 5 (DEBUG, INFO, WARN, ERROR 및 FATAL) 만 사용할 수 있습니다. 로깅 레벨을 DEBUG로 선언하면 DEBUG, INFO, WARN, ERROR 및 FATAL 등 모든 것을 기록합니다. 그러나 로깅 수준을 WARN으로 선언하면 WARN, ERROR 및 FATAL 만 기록됩니다. 당신이 계층을 이해하기를 바랍니다.
app.config 에서 마지막으로 필요한 것은 루트 섹션입니다. 루트 섹션에는 최상위 레벨 로거와 로깅 수준이 있습니다. 모든 것이 루트에서 상속된다는 것을 이해하는 것이 중요합니다. 따라서 루트 아래에서 참조되지 않는 한 appender는 기록하지 않습니다. 이렇게 추가하면 app.config 가 다음과 같이 표시됩니다.
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,Log4net"/>
</configSections>
<log4net>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date{ABSOLUTE} [%thread] %level %logger - %message%newline"/>
</layout>
</appender>
<root>
<level value="DEBUG"/>
<appender-ref ref="ConsoleAppender" />
</root>
</log4net>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
</configuration>
구성 파일의 섹션을 복사하여 붙여 넣는 것은 나쁜 생각이 아니지만 책임 소재를 이해하는 것이 중요합니다. 이제 app.config를 구성 했으므로 콘솔 프로젝트에 약간의 코드를 추가해야합니다. 첫째, 우리는 수업 시간대에 배치해야하는 일회성 항목을 정의해야합니다.
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
Program.cs 파일의 내 using 문 바로 아래에 넣으십시오. 다음으로 로깅에 사용할 로거 인스턴스를 만들어야합니다. 이 작업은 클래스 당 한 번 수행됩니다.
private static readonly log4net.ILog log = log4net.LogManager.GetLogger
(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
그리고 마지막으로, 우리는 무언가를 기록 할 필요가 있습니다.
log.Error("This is my error");
Program.cs 파일은 다음과 같아야합니다.
using System;
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
namespace Log4netTutorial
{
class Program
{
private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
static void Main(string[] args)
{
Console.WriteLine("Hello World");
log.Error("This is my error");
Console.ReadLine();
}
}
}
프로그램을 실행하면 콘솔에 오류가 기록됩니다.



