2016-10-05 2 views
0

scala logging 3.5.0, logback-classic 1.1.7을 사용하는 스칼라 애플리케이션이 있습니다. 문제없이 일반 텍스트 파일에 로그 할 수 있지만 (아직 logstash를 사용하지는 않지만) logstash-logback-encoder을 사용하여 로그 파일 형식을 JSON으로 변경하려고했습니다. 워드 프로세서logstash-logback-encoder로 JSON 파일에 로깅하지 못했습니다.

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
<file>logs/solomon.log</file> 
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
    <!-- daily rollover --> 
    <fileNamePattern>solomon.%d{yyyy-MM-dd}.log</fileNamePattern> 

    <!-- keep 30 days' worth of history --> 
    <maxHistory>30</maxHistory> 
</rollingPolicy> 

<encoder> 
    <encoder class="net.logstash.logback.encoder.LogstashEncoder"/> 
</encoder> 

,이 지원되는 모든 필드, JSON과 같은 파일에 기록해야 것 같다,하지만 난 빈 로그를 받고 있어요 : 내 업데이트 된 파일의 펜더 정의는 이제 다음과 같습니다 파일 및 응용 프로그램 시작시 다음 오류 메시지가 표시됩니다.

09:05:58,101 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property 
09:05:58,102 |-ERROR in [email protected]:70 - no applicable action for [encoder], current ElementPath is [[configuration][appender][encoder][encoder]] 
09:05:58,102 |-ERROR in ch.qos.logback.classic.PatternLayout("null") - Empty or null pattern. 

확실하지 않은 내용이 있습니다. 내 설치는 내가 보았던 JSON 파일 로깅을 원하지만 아직 logstash를 사용하지 않는 다른 사용자와 매우 유사하게 보입니다. 어떤 도움이라도 대단히 감사하게 될 것입니다!

답변

0

문제는 내 잘못이었습니다 ... 인코더 선언을 중첩했습니다. 일단 제거하면 모든 것이 잘 작동합니다. 나는 너무 빨리 배치했다고 생각한다!