2011-02-01 5 views
2

log4net을 설정하고 "debug.log"에 디버그 메시지를 쓰거나 "info.log"에 정보 메시지를 쓰고 싶습니다.로그 수준에 따라 다른 파일에 기록하도록 log4net 구성

<appender name="DebugLogger" type="log4net.Appender.RollingFileAppender"> 
    <file value="..\Logs\Debug.log" /> 
    <threshold value="DEBUG" /> 
    <appendToFile value="true" /> 
    <rollingStyle value="Size" /> 
    <maxSizeRollBackups value="10" /> 
    <maximumFileSize value="1MB" /> 
    <staticLogFileName value="true" /> 
    <layout type="log4net.Layout.PatternLayout"> 
    <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> 
    </layout> 

및 정보에 대한 유사한 것들, 경고 및 오류 수준 :

는이를 위해, 나는 다음과 같은 몇 가지 펜더를 사용합니다. 괜찮아요,하지만 그 모든 appenders 임계 값 (디버그 또는 경고 등) 및 파일 이름 (debug.log 또는 warn.log 등)에만 차이가 있기 때문에 많은 추가 작업 것 같습니다

더 좋은 방법이 있습니까 내 목표를 달성하기 위해? 어쩌면 "기본 애펜더"를 먼저 선언하는 것과 같은 것일 수 있습니다.

(별도의 메모 - 그 NLog에 log4net에서 가능하지만 불가능하면, 나뿐만 아니라 알고 감사하게 될 거라고)

감사합니다!

답변

3

좋아, 이것은 log4net에서 가능하지 않습니다. 단지 질문을 닫고 싶습니다.

는 그래도 난 NLog을 체크 아웃하고, 분명히합니다 (설정에 $level 변수 참조)가 매우 쉽습니다 :

<?xml version="1.0" encoding="utf-8" ?> 
<nlog> 
    <variable name="logDirectory" value="${basedir}\..\Logs"/> 
    <targets> 
     <target name="file" type="File" fileName="${logDirectory}\${level}.log" /> 
    </targets> 
    <rules> 
     <logger name="*" minlevel="Debug" writeTo="file" /> 
    </rules> 
</nlog> 
관련 문제