2017-04-04 13 views
0

세 크레인의 동작을 시뮬레이트 할 프로그램이 있습니다. 각 크레인이 자체 로그 파일을 갖기를 원합니다. 이 질문에 대해서는 우리 중 하나만 걱정할 것입니다. 프로그램에는 별도의 범용 로그 파일도 있습니다. 루트 로거를 범용 파일로 사용할 계획입니다. 이 경우 크레인의 로거 이름은 "Crane1"입니다.잘못된 파일에 로깅하는 이유는 무엇입니까?

Crane1 로그 구성은 additivity = false를 사용하여 루트에서 아무 것도 상속하지 않습니다. 서로 독립적으로 루트 및 크레인 로그 파일을 구성 할 수 있기를 원합니다.

내 프로그램에서 "Crane1"이라는 로거를 가져 와서 메시지를 씁니다. 그러나 메시지가 RollingFile appender로 보내지고 잘못된 파일에 나타납니다. TimedRollingAppender appender가 처리하지 못합니다. TimedRollingAppender의 파일 인 PlantGenieTimed.log가 생성되지만 비어 있습니다.

Crane1이 내가 예상 한 appender를 사용하지 않는 이유는 무엇입니까?

는 당신의 도움을 주셔서 대단히

감사 (내 프로그램이 올바른 구성 파일을 읽는 것을 확인 할 수 있습니다. RollingFile의 펜더의 ​​파일의 어리석은 이름을 사용).

구성 파일 :

<?xml version="1.0" encoding="utf-8"?> 
<log4net> 
    <appender name="RollingFile" type="log4net.Appender.RollingFileAppender"> 
    <file value="PlantGenie_ThisIsTheWrongFile.log" /> 
    <appendToFile value="true" /> 
    <maxSizeRollBackups value="90" /> 
    <rollingStyle value="Size" /> 

    <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date - %message%newline" /> 
    </layout> 
    </appender> 

    <appender name="TimedRollingAppender" type="log4net.Appender.RollingFileAppender"> 
    <file value="PlantGenieTimed.log" /> 
    <appendToFile value="true" /> 
    <maxSizeRollBackups value="90" /> 
    <rollingStyle value="Size" /> 

    <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date - %message%newline" /> 
    </layout> 
    </appender> 

    <logger Name="Crane1" additivity="false"> 
    <appender-ref ref="TimedRollingAppender" /> 
    <level value="DEBUG"/> 
    </logger> 

    <root> 
     <level value="DEBUG" /> 
    <appender-ref ref="RollingFile" /> 
    </root> 

</log4net> 

답변

1

젠장. 늘 그렇듯이 질문을 게시하는 즉시 문제가 나타납니다. Crane1 로거의 name 속성 대신 Name 속성을 사용했습니다. 대문자로 표시된 속성은 존재하지 않습니다. 나는 그것을 소문자로 바꿨고 예상대로 작동했다.

+0

나는 똑같은 짓을 했어. 너의 대답은 나에게 똑같은 실수를 찾게했다. –

+0

내가 도울 수있어서 기뻐요! –