세 크레인의 동작을 시뮬레이트 할 프로그램이 있습니다. 각 크레인이 자체 로그 파일을 갖기를 원합니다. 이 질문에 대해서는 우리 중 하나만 걱정할 것입니다. 프로그램에는 별도의 범용 로그 파일도 있습니다. 루트 로거를 범용 파일로 사용할 계획입니다. 이 경우 크레인의 로거 이름은 "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>
나는 똑같은 짓을 했어. 너의 대답은 나에게 똑같은 실수를 찾게했다. –
내가 도울 수있어서 기뻐요! –