Controlling logging
===================

フェールオーバーマネージャーは、エージェントごとに1つのログファイルを\ ``/var/log/efm-<version>/``
に書き込み、保存します。

:ref:`The cluster properties file <The cluster properties file>` の\ ``jgroups.loglevel`` 、\ ``efm.loglevel``
、および\ ``jdbc.loglevel``
パラメーターを変更することにより、エージェントログに書き込まれる詳細レベルを制御できます。

.. code:: ini


   #  Logging levels for JGroups and EFM.

   #  Valid values are: TRACE, DEBUG, INFO, WARN, ERROR

   #  Default value: INFO

   #  It is not necessary to increase these values unless debugging a specific

   #  issue. If nodes are not discovering each other at startup, increasing

   #  the jgroups level to DEBUG will show information about the TCP connection

   #  attempts that may help diagnose the connection failures.

   #  If there are issues with creating database connections, increasing

   #  the jdbc.loglevel level will show more information.

   #  TRACE level logging should be used for diagnosing problems only.

   #  It is not supported for production use.

   jgroups.loglevel=INFO
   efm.loglevel=INFO
   jdbc.loglevel=INFO

ロギング機能は、Javaロギングライブラリとロギングレベルを使用します。ログレベルは、ログ出力の多い順に次のとおりです。

- ``TRACE``

- ``DEBUG``

- ``INFO``

- ``WARN``

- ``ERROR``

たとえば、 ``efm.loglevel`` パラメーターを\ ``WARN``
に設定すると、フェールオーバーマネージャーは\ ``WARN``
レベル以上、つまり\ ``WARN`` および\ ``ERROR``
のメッセージのみをログに記録します。

!!!重要
TRACEレベルのログは、特定の問題を診断する場合にのみ使用してください。これにより、Failover
Managerエージェントの作業が増加し、このレベルのロギングでの動作は定義されていません。実稼働使用はサポートされていません。

デフォルトでは、フェールオーバーマネージャーログファイルは毎日ローテーション、圧縮され、1週間保存されます。ログローテーションファイル
``/etc/logrotate.d/efm-5.<x>``
の設定を変更することにより、ファイルローテーションスケジュールを変更できます。ログローテーションスケジュールの変更の詳細については、logrotateのマニュアルページを参照してください。

.. code:: shell

   $ man logrotate

syslogログファイルエントリの有効化
----------------------------------

フェールオーバーマネージャーは、syslogロギングをサポートしています。
syslogロギングを実装するには、syslogを設定してUDPまたはTCP接続を許可する必要があります。

syslogへの接続を許可するには、 ``/etc/rsyslog.conf``
ファイルを編集し、使用するプロトコルのコメントを外します。また、プロトコルに関連付けられている\ ``UDPServerRun``
または\ ``TCPServerRun``
エントリに、ログエントリの送信先のポート番号が含まれていることを確認します。たとえば、次の構成ファイルエントリは、ポート514へのUDP接続を有効にします。

.. code:: shell


   #  Provides UDP syslog reception

   $ModLoad imudp
   $UDPServerRun 514

次の構成ファイルエントリは、ポート514へのTCP接続を有効にします。

.. code:: shell


   #  Provides TCP syslog reception

   $ModLoad imtcp
   $InputTCPServerRun 514

syslog構成ファイルを変更した後、\ ``rsyslog``
サービスをリスタートして接続を有効にします。

   ``systemctl restart rsyslog.service``

フェールオーバーマネージャーホストで\ ``rsyslog.conf``
ファイルを変更した後、フェールオーバーマネージャープロパティを変更してロギングを有効にします。
:ref:`modify the properties file <The cluster properties file>`  ``/etc/edb/efm-5.<x>/efm.properties.in``
のエディターの選択を使用し、実装するロギングのタイプを指定します。

.. code:: ini


   #  Which logging is enabled.

   file.log.enabled=true
   syslog.enabled=false

システムの :ref:`specify syslog details <The cluster properties file>` も必要です。 ``syslog.protocol``
パラメーターを使用してプロトコルタイプUDPまたはTCPを指定し、
``syslog.port``
パラメーターを使用してsyslogホストのリスナーポートを指定します。
``syslog.facility``
値は、エントリーを作成したプロセスの識別子として使用できます。
``LOCAL0`` から\ ``LOCAL7`` までの値を使用します。

.. code:: ini


   #  Syslog information. The syslog service must be listening # on the

    port for the given protocol, which can be UDP or

   #  TCP. The facilities supported are LOCAL0 through LOCAL7.

   #  syslog.host=localhost

   syslog.port=514
   syslog.protocol=UDP
   syslog.facility=LOCAL1

syslogの詳細については、syslogのマニュアルページを参照してください。

``man syslog``
