Многострочный вывод в формате JSON Log4j - PullRequest
0 голосов
/ 13 февраля 2019

Я пытаюсь вывести журналы из приложения Spark, используя пользовательский файл log4j.Однако все данные выводятся в одну строку.например:

{"name":"org.apache.spark.storage.BlockManagerMasterEndpoint","time":1550067035445,"date":"2019-02-13 14:10:35,445","level":"INFO","thread":"dispatcher-event-loop-0","message":"Registering block manager 413.9 MB RAM, BlockManagerId(driver, spark-example-1550067018081-driver-svc.default.svc, 7079, None)"}{"name":"org.apache.spark.storage.BlockManagerMaster","time":1550067035451,"date":"2019-02-13 14:10:35,451","level":"INFO","thread":"main","message":"Registered BlockManager BlockManagerId(driver, spark-driver, 7079, None)"}

Какой шаблон преобразования для приложения или любой другой параметр я могу определить для вывода многострочных журналов?

Файл Log4j:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>

    <appender name="Json" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.hadoop.log.Log4Json">
        </layout>
    </appender>

    <root>
        <level value="INFO"/>
        <appender-ref ref="Json"/>
    </root>
</log4j:configuration>
...