Log4net은 Apache log4j의 .net 버전입니다. 최근에 로그 시스템이 필요한 프로그램이 있어서 연구하게 되었습니다. 추천해주신 Hao Wei님께 감사드립니다.
log4net 시스템은 7개의 로그 레벨로 구분됩니다. "WARN"으로 설정하면 DEBUG 및 INFO가 기록되지 않습니다. 1.
ALL
2. DEBUG
3. INFO
4. WARN
5. ERROR
6. FATAL
7. OFF
샘플 애플리케이션 생성
1단계: log4net을 다운로드
하고 login.apache.org/log4net으로 이동하여 최신 버전을 얻으세요. incubating-log4net-1.2.9-beta.zip을 사용한 예에서는 공식 버전을 기대합니다.
2단계: ASP.NET 웹 애플리케이션 생성
log4net-1.2.0-beta8binnet에 표시된 대로 생성에 대해 자세히 설명하지 않겠습니다. 해당 dll을 찾아 참조에 추가합니다. 일부 버전에는 컴파일된 dll이 없으므로 직접 컴파일하고 .NET V1.0 버전을 사용하여 1.1 또는 2.0으로 변환합니다. 이건 업무상의 실수가 아니라 의도적인 것이라고 생각합니다. Java에 익숙한 많은 사람들이 이와 같습니다.
샘플 애플리케이션 구성
3단계: 어셈블리 정보 추가
AssemblyInfo.cs 파일을 열고 다음을 추가합니다.
[어셈블리: log4net.Config.DOMConfigurator()]
이 문장은 log4net 시스템이 구성 정보를 얻고 로드하기 위해 구성 파일 Web.config를 자동으로 찾는다는 것을 의미합니다. log4net이 언제든지 다시 로드하기 위해 구성 파일을 모니터링하도록 하려면 다음과 같이 작성해야 합니다.
[assemblies:log4net.Config.DOMConfigurator(ConfigFile="filename",ConfigFileExtension="log4net",Watch=true)]
4단계: 구성 정보를 추가하려면
Web.config 파일을 편집해야 합니다. 매번 정말 놀랐습니다. 나는 그것을 본다. 구성 태그를 찾아 바로 아래에 configSections를 작성합니다(다른 사람을 전혀 고려하지 않고 누군가가 그처럼 횡포하면 어떻게 되나요? 그런 다음 로그 구성 파일을 작성하면 됩니다! APACHE는 이런 생각인 것 같습니다). 예를 살펴보십시오.
<?xml version="1.0" 인코딩="utf-8" ?>
<configuration>
<configSections>
<section name="log4net"
type="log4net.Config.Log4NetConfigurationSectionHandler, log4net-net-1.0"
/>
</configSections >
<!-- 이 섹션에는 log4net 구성 설정이 포함되어 있습니다 -->
<log4net>
<!-- 일부 출력 어펜더 정의 -->
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<layout type=" log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] <%X{auth}> - %m%n" />
< /layout>
</appender>
<!-- RollingFileAppender는 크기나 날짜별로 파일을 롤오버한 후 검색합니다 -->
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value= "C:\log\RollingLogHelloWorld.log" />
<param name="AppendToFile" value="true" />
<param name="MaxSizeRollBackups" value="10" />
<param name="MaximumFileSize" 값 ="1000" />
<param name="RollingStyle" value="Size" />
<param name="StaticLogFileName" value="true" />
<layout type="log4net.Layout.PatternLayout">
<param name= "ConversionPattern" value="%d [%t] %-5p %-45c [%x] - %m%n" />
</layout>
</appender>
<!-- FileAppender는 로그에 추가되며 이는 수동으로 관리 또는 크기 -->
<appender name="FileAppender" type="log4net.Appender.FileAppender">
<param name="File" value="LogHelloWorld.log" />
<!-- 매개변수에 환경 변수를 사용하는 예 -->
<!-- <param name="File" value="${TMP}\ApplicationKit.log" /> -->
<param name="AppendToFile" value="true" />
<layout type= "log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
</layout>
</appender>
< !-- 루트 카테고리 설정, 어펜더 추가 및 기본 레벨 설정 -->
<root>
<level value="INFO" />
<appender-ref ref="ConsoleAppender" />
</root>
<!-- ApplicationKit 카테고리 - 프리젠테이션 UI -->
<logger name="WebForm1">
<level value="INFO" />
<appender-ref ref="FileAppender" />
</logger>
</log4net>
</configuration>
Logger 노드의 NAME 속성은 클래스 이름을 참조하는 WebForm1로 설정되어 있습니다. LOG를 추가해야 하는 각 클래스에 이러한 노드를 추가합니다. OSWORKFLOW 워크플로우는 유연성과 편의성, 실용성을 동시에 달성할 수 없는 경우가 많습니다. 여기서 레벨은 INFO입니다. 즉, INFO보다 낮은 레벨은 녹음되지 않습니다.
샘플 애플리케이션 실행
5단계: Log 클래스를 추가하려면
먼저 log4net을 사용하여 참조를 추가합니다
. //그런 다음 구성 파일을 주의 깊게 살펴보면 다음 선언 방법을 쉽게 이해할 수 있습니다. .GetLogger("WebForm1");
6단계: Log 객체 사용
이제 모든 구성 작업이 완료되었으며 이를 테스트하고 애플리케이션 계층에 연결합니다. 응답 이벤트 Button1_Click 이벤트 핸들러에 버튼을 추가하기만 하면 됩니다.
log.Info("안녕하세요, 저는 로거입니다");
7단계: 애플리케이션 실행
이제 다음과 같이 보일 것입니다.
버튼을 클릭할 때마다2006-02-13 10:12:30,671 [1228] INFO WebForm1 [] - Hello가
날짜 파일에 나타납니다. .
세계, 나는 로거라는 기록이 있습니다.
요약:
간단하고 사용하기 쉽습니다. SQL 로그를 잠시 살펴보겠습니다. DB가 최고입니다. 하하.
자세한 내용은 http://logging.apache.org/log4net/을 참조하세요.