2016-05-23 24 views
1

私はstdoutに自分のログを投稿しようとします。これは正常に動作しますが、.json形式に書き直す必要があります。Muleのstdoutに.json形式のログインを投稿するには?

私は、以下を使用してみました:

<Appenders> 
     <Console name="stdout" target="SYSTEM_OUT"> 
      <LogStashJSONLayout> 

      <!-- Example of what you might do to add fields, warning values should be known to be json escaped strings --> 
      <KeyValuePair key="application_name" value="${sys:application.name}"/> 
      <KeyValuePair key="application_version" value="${sys:application.version}"/> 
      <KeyValuePair key="environment_type" value="${sys:deploy_env}"/> 
      <KeyValuePair key="cluster_location" value="${sys:cluster_location}"/> 
      <KeyValuePair key="cluster_name" value="${sys:cluster_name}"/> 
      <KeyValuePair key="hostname" value="${sys:hostname}"/> 
      <KeyValuePair key="host_ip" value="${sys:host_ip}"/> 

      <!--Example of using system property substitution --> 
      <KeyValuePair key="application_user" value="${sys:user.name}"/> 

      <!--Example of using environment property substitution env:USERNAME on windows--> 
      <KeyValuePair key="environment_user" value="${env:USER}"/> 
      </LogStashJSONLayout> 
     </Console> 

githubにアイデアを見つけました)しかし、これは動作しません。私は平文でstdoutで私のログを参照してください。

please check your split expression 
Processing bucket : entityresolution-datasets 
Splitter returned no results. If this is not expected, please check your split expression 
Processing bucket : mesos-exhibitors3bucket-10oeaynyppkt7 
Splitter returned no results. If this is not expected, please check your split expression 
Processing bucket : process-log 
Splitter returned no results. If this is not expected, please check your split expression 
Processing bucket : segmentation-datasets 
Splitter returned no results. If this is not expected, please check your split expression 

だから私はLogStashJSONLayout形式で私のlogstash出力を使用したいとソケットを使用して、それを掲示するのではなく、コンソールに出力:このよう 。

答えて

2

私は同じ問題がありましたが、最終的に私のニーズに合った解決策を見つけました。 私のアプリケーションで使用しているJSONLayout.java file on Githubがあります。

私はパッケージ(例えばcom.example.log4j2)での私のsrc /メイン/ javaのフォルダにファイルを追加し、私のlog4j2 xmlファイルには、次のようになります。

<Configuration packages="com.example.log4j2" verbose="false"> 
<Appenders> 
    <Console name="stdout" target="SYSTEM_OUT"> 
     <JSONLayout> 
     </JSONLayout> 
    </Console> 
</Appenders> 
... 
<Loggers> 
    ... 
    <AsyncRoot level="WARN"> 
     <AppenderRef ref="stdout" /> 
    </AsyncRoot> 
</Loggers> 

この場合、私に教えてくださいあなたのためにも働きます。私はパッケージの名前と@Plugin(name = ...)にいくつかの変更を加えたので、何かを混乱させるかもしれません。

+0

よろしくお願いします!これで解決しました;) – DenCowboy

関連する問題