2016-10-05 51 views
0

我有一個使用scala logging的斯卡拉應用程序3.5.0,logback-classic 1.1.7。我可以毫無問題地登錄到一個純文本文件,但是(儘管我還沒有使用logstash),但我想使用logstash-logback-encoder將日誌文件格式更改爲JSON。我更新的文件Appender的定義現在看起來是這樣的:以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

問題是我的錯......我嵌套了編碼器聲明。一旦我刪除了,一切正常。我想我過早張貼!