가 참조 :여러 루트 로거
<configuration debug="true">
<if condition='property("HOSTNAME").contains("torino")'>
<then>
<appender name="CON" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d %-5level %logger{35} - %msg %n</pattern>
</encoder>
</appender>
<root> <------ root logger #1
<appender-ref ref="CON" />
</root>
</then>
</if>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>${randomOutputDir}/conditional.log</file>
<encoder>
<pattern>%d %-5level %logger{35} - %msg %n</pattern>
</encoder>
</appender>
<root level="ERROR"> <------ root logger #2
<appender-ref ref="FILE" />
</root>
</configuration>
: 조건문을 논의 할 때 Logback's Configuration이
내 구성이 동일한 문서의 뒷부분에 다음 ...at most one <root> element...
을 포함 할 수 있지만, 나는이 참조 두 개의 <root>
요소가 있습니다. 나는 어떤 <else>
요소도 보이지 않기 때문에 매우 혼란 스러우며, 호스트 이름이 "토리노"인 경우에도 FILE appender와 두 번째 루트 로거가 여전히 작동한다고 가정합니다.
이것은 어떻게 유효한 예입니까? 이 경우 두 개의 <root>
로거가 허용되는 이유는 <if>
또는 <else>
무엇이 누락 되었습니까 ???
엄격한 XML 구문에 대해, 대부분 하나의 ''요소가''요소의 직접적인 하위 요소로 허용된다는 것을 말합니다. 다른 ''요소는 ''요소의 하위 요소이므로 XML 구문을 위반하지 않습니다. –
Andreas
@andreas는 여전히 루트 로거가 활성 상태라는 질문에 대답하지 않습니다. 하나는 다른 트럼프 또는 그들이 어떤 방법으로 병합 있습니까 ?? – Jason
당신은 실제로 그 질문을하지 않았습니다. 문서가 "많아야 하나"라고되어 있더라도 두 개의 ''요소가 허용되는 이유는 무엇입니까? 나는 그 두 가지가 모두 유효하다고 말하고 싶다. 첫 번째 ''요소가'level' 속성을 가지고 있지 않은 것에 주목하십시오. 루트에 다른 appender를 추가하기 만하면됩니다. –
Andreas