2017-01-22 1 views
1

롤링 로그 파일을 사용하고 응용 프로그램이 실행 중일 때 내용을 지울 수 있도록 .NET 콘솔 응용 프로그램을 구성하는 방법은 무엇입니까?최소 log4net 구성

나는 웹을 검색하고 log4net 문서화 (꽤 수다스러운)를 통해 필요한 모든 자료를 모은 후에 내 자신의 질문에 대답하고 있습니다. 놀랍게도 SO에있는 모든 요구 사항을 다루는 단 하나의 대답이 아직 없기 때문에 나는 1 년이나 2 년 안에이 같은 일을 한 번하는 경향이 있습니다.

답변

1

A) NuGet 패키지 log4net (현재 커널 2.0.x)

B) 시작 방법

public static void Start(string[] args) 
{ 
    log4net.Config.XmlConfigurator.Configure(); 
    ... 
} 

C의 시작 부분에 다음 줄을 추가 설치)의 App.config에 다음 섹션을 추가

*이 log4net sdk documentation이 모든 구성의 의미를 파악하려고 할 때 매우 유용합니다

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <configSections> 
     <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> 
    </configSections> 
    <log4net> 
     <appender name="RollingFileAppender_All" type="log4net.Appender.RollingFileAppender"> 
      <file value="MyApplication.log" /> 
      <maxSizeRollBackups value="10" /> 
      <maximumFileSize value="1MB" /> 
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> 
      <layout type="log4net.Layout.PatternLayout"> 
       <conversionPattern value="%date [%thread] %-5level %logger - %message %exception%newline" /> 
      </layout> 
     </appender> 
     <root> 
      <level value="ALL" /> <!-- ALL, DEBUG, INFO, WARN, ERROR, FATAL, OFF --> 
      <appender-ref ref="RollingFileAppender_All" /> 
     </root> 
    </log4net> 
</configuration> 
012 값

d) 로거 인스턴스를 생성하여 사용하십시오.

using log4net; 

public class SomeClass 
{ 
    private static readonly ILog log = LogManager.GetLogger(typeof(SomeClass)); 

    public void DoSomething() 
    { 
     try 
     { 
      throw new InvalidOperationException("test"); 
     } 
     catch (Exception ex) 
     { 
      log.Error(ex); 
     } 
    } 
}