Log4j を使用したログシステムとの統合

logo cloud active logo hybrid disabled logo server disabled logo rtf disabled

CloudHub のログを無効化して、Log4j 設定を使用して CloudHub アプリケーションをログシステムに統合できます。 ユーザのログシステムと CloudHub の両方にログが送信されるように設定したら、デフォルトの CloudHub アプリケーションログを無効化してください。

要件と制限事項

  • この機能は要求に応じてのみ使用できます。

    Runtime Manager に ​[Disable CloudHub logs (CloudHub ログを無効化)]​ オプションが表示されていない場合は、サポートポータルで要求できます。

  • MuleSoft では、以下のような Log4j アペンダーの設定ミスによる問題については責任を負いません。

    • ログデータの消失

    • パフォーマンスの低下

    • ディスクスペースの不足

  • 同期ログアペンダーは使用しないでください。

    非同期ログアペンダーのみを使用してください。

  • CloudHub ログを無効化すると:

    • Runtime Manager ではシステムログのみを使用できます。

      システムログでは、ワーカーのデプロイ状況と、アプリケーションが適切に起動したかどうかが示されますが、アプリケーションログは提供されません。 アプリケーションワーカーのログについては、アプリケーションのログシステムを確認してください。

    • [Applications (アプリケーション)] > [Logs (ログ)]​ ページではアプリケーションワーカーのログをダウンロードできません。

    • CloudHub は、ログが使用できないことを示す警告を表示します。

Log4j 設定の作成

独自のログシステムにログを送信すると共に CloudHub でもログを表示できるようにするには、CloudHub Log4j アペンダーを設定する必要があります。Log4j アペンダーは、CloudHub とローカルログファイルにログデータを送信します。

Log4j アペンダーを有効化するには、​log4j2.xml​ 設定ファイルを自分のロガー設定で更新してください。 Anypoint Studio では、​log4j2.xml​ ファイルは ​src/main/resources​ ディレクトリにあります。

log4j2.xml​ の設定については、​Log4j のドキュメント​を参照してください。

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO" name="cloudhub" packages="com.mulesoft.ch.logging.appender">
    <Appenders>
        <RollingFile name="FILE"
                     fileName="/opt/mule/mule-CURRENT/logs/mule-${sys:domain}.log"
                     filePattern="/opt/mule/mule-CURRENT/logs/mule-${sys:domain}-%i.log">

            <PatternLayout pattern="[%d{MM-dd HH:mm:ss.SSS}] %-5p %c{1} [%t]: %m%n"/>
            <DefaultRolloverStrategy max="10"/>
            <Policies>
                <SizeBasedTriggeringPolicy size="10 MB" />
            </Policies>
        </RollingFile>
        <Log4J2CloudhubLogAppender name="CLOUDHUB"
                addressProvider="com.mulesoft.ch.logging.DefaultAggregatorAddressProvider"
                applicationContext="com.mulesoft.ch.logging.DefaultApplicationContext"
                appendRetryIntervalMs="${sys:logging.appendRetryInterval}"
                appendMaxAttempts="${sys:logging.appendMaxAttempts}"
                batchSendIntervalMs="${sys:logging.batchSendInterval}"
                batchMaxRecords="${sys:logging.batchMaxRecords}"
                memBufferMaxSize="${sys:logging.memBufferMaxSize}"
                journalMaxWriteBatchSize="${sys:logging.journalMaxBatchSize}"
                journalMaxFileSize="${sys:logging.journalMaxFileSize}"
                clientMaxPacketSize="${sys:logging.clientMaxPacketSize}"
                clientConnectTimeoutMs="${sys:logging.clientConnectTimeout}"
                clientSocketTimeoutMs="${sys:logging.clientSocketTimeout}"
                serverAddressPollIntervalMs="${sys:logging.serverAddressPollInterval}"
                serverHeartbeatSendIntervalMs="${sys:logging.serverHeartbeatSendIntervalMs}"
                statisticsPrintIntervalMs="${sys:logging.statisticsPrintIntervalMs}">

            <PatternLayout pattern="[%d{MM-dd HH:mm:ss}] %-5p %c{1} [%t]: %m%n"/>
        </Log4J2CloudhubLogAppender>
    </Appenders>
    <Loggers>
        <AsyncRoot level="INFO">
            <AppenderRef ref="FILE"/>
            <AppenderRef ref="CLOUDHUB"/>
        </AsyncRoot>
        <AsyncLogger name="com.gigaspaces" level="ERROR"/>
        <AsyncLogger name="com.j_spaces" level="ERROR"/>
        <AsyncLogger name="com.sun.jini" level="ERROR"/>
        <AsyncLogger name="net.jini" level="ERROR"/>
        <AsyncLogger name="org.apache" level="WARN"/>
        <AsyncLogger name="org.apache.cxf" level="WARN"/>
        <AsyncLogger name="org.springframework.beans.factory" level="WARN"/>
        <AsyncLogger name="org.mule" level="INFO"/>
        <AsyncLogger name="com.mulesoft" level="INFO"/>
        <AsyncLogger name="org.jetel" level="WARN"/>
        <AsyncLogger name="Tracking" level="WARN"/>
    </Loggers>
</Configuration>

CloudHub でのカスタム Log4j 設定の有効化

Log4j アペンダーを設定したら、アプリケーションを CloudHub にデプロイしてから、以下の手順に従って CloudHub ログを無効化します。

  1. Anypoint Platform から ​[Runtime Manager]​ を選択します。

  2. 左側のメニューで ​[Applications (アプリケーション)]​をクリックします。

  3. [Type (種別)]​ 列をクリックしてアプリケーションの詳細ペインを表示します。

  4. [Manage Application (アプリケーションを管理)]​ をクリックします。

  5. [Settings (設定)]​ ページで、​[Disable CloudHub logs (CloudHub ログを無効化)]​ をクリックします。

    [Applications Settings (アプリケーションの設定)] ページの [Disable CloudHub logs (CloudHub ログを無効化)] オプション
    Figure 1. ​[Settings (設定)]​ ページの ​[Disable CloudHub logs (CloudHub ログを無効化)]​ オプションを示す矢印。
  6. [Disable CloudHub logs (CloudHub ログを無効化)]​ 確認ウィンドウで、CloudHub ログの無効化を確認するためのチェックボックスをオンにします。

    [Disable CloudHub logs (CloudHub ログを無効化)] 確認ウィンドウ
    Figure 2. ​[Disable CloudHub logs (CloudHub ログを無効化)]​ 確認ウィンドウが表示された画面。
  7. [Apply Changes (変更を適用)]​ をクリックします。

  8. アプリケーション設定を参照して、設定が正しいことを確認します。

  9. [Apply Changes (変更を適用)]​ をクリックして、アプリケーションを再起動します。

アプリケーションが起動すると、カスタム Log4j アペンダーへのログの送信が開始され、対象ログシステムでログを参照できるようになります。

Was this article helpful?

💙 Thanks for your feedback!