ロギングの構成

ロギング機能では、ログバックをバックエンドにしてSimple Logging Facade for Java(SLF4J)を使用します。

ロギング機能では、ログバックをバックエンドにしてSimple Logging Facade for Java(SLF4J)を使用します。ログは、ロギング・ディレクトリーのsystem.logdebug.logに書き込まれます。ロギングは、プログラムで、あるいは手動で設定できます。手動でロギングを設定するには:

  • nodetool nodetool setlogginglevelコマンドを実行します。
  • DataStax Enterpriseとともにインストールされている、logback-test.xmlファイルまたはlogback.xmlファイルを構成します。
  • JConsoleツールを使用して、JMXからロギングを設定します。

ログバックは最初にlogback-test.xmlを探し、次にlogback.xmlファイルを探します。

logback.xmlファイルの場所は、インストールのタイプによって異なります。

パッケージ・インストールInstaller-Servicesインストール

/etc/dse/cassandra/logback.xml

tarボール・インストールInstaller-No Servicesインストール

installation_location/resources/cassandra/conf/logback.xml
XML構成ファイルは以下のようになります。
<configuration scan="true">
  <jmxConfigurator />
  <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${cassandra.logdir}/system.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
      <fileNamePattern>${cassandra.logdir}/system.log.%i.zip</fileNamePattern>
      <minIndex>1</minIndex>
      <maxIndex>20</maxIndex>
    </rollingPolicy>

    <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
      <maxFileSize>20MB</maxFileSize>
    </triggeringPolicy>
    <encoder>
      <pattern>%-5level [%thread] %date{ISO8601} %F:%L - %msg%n</pattern>
      <!-- old-style log format
      <pattern>%5level [%thread] %date{ISO8601} %F (line %L) %msg%n</pattern>
      -->
    </encoder>
  </appender>
  
  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
      <pattern>%-5level %date{HH:mm:ss,SSS} %msg%n</pattern>
    </encoder>
  </appender>
        
  <root level="INFO">
    <appender-ref ref="FILE" />
    <appender-ref ref="STDOUT" />
  </root>
  
  <logger name="com.thinkaurelius.thrift" level="ERROR"/>
</configuration>
アペンダー構成は、ログとその構成をどこに印刷するかを指定します。最初のアペンダーappender name="FILE" ...は、ログをファイルに誘導します。2番目のアペンダーappender name="STDOUT" ...は、ログをコンソールに誘導します。以下のロギング機能を変更できます。
  • ローリング・ポリシー
    • ログをアーカイブにローリングするためのポリシー
    • ログ・ファイルの場所と名前
    • アーカイブの場所と名前
    • ローリングをトリガーする最小ファイル・サイズと最大ファイル・サイズ
  • メッセージの形式
  • ログ・レベル

ログ・レベル

ログ・レベル設定の有効値には、すべてのレベルの情報をロギングする「ALL」、「TRACE」から「ERROR」まで、さらにロギングなしの「OFF」があります。TRACEで最も冗長なログが作成され、ERRORで最も低いレベルのログが作成されます。

  • ALL
  • TRACE
  • DEBUG
  • INFO(デフォルト)
  • WARN
  • ERROR
  • OFF
注: ロギング・レベルを上げると、トラフィックの少ないクラスターでも、大量のログ出力が生成されることがあります。
nodetool getlogginglevelsコマンドを使用して、現在のロギング構成を確認できます。
bin\nodetool getlogginglevels Logger Name Log Level ROOT INFO com.thinkaurelius.thrift ERROR
ログバック・フレームワークを使用してクラスにデバッグ・ロギングを恒久的に追加するには、nodetool setlogginglevelを使用して適切なクラスがあることを確認してから、installation_location/confのlogback.xmlファイルで設定します。ファイルの末尾に以下のような行を含めます。
<logger name="org.apache.cassandra.gms.FailureDetector" level="DEBUG"/>
変更を有効にするには、ノードを再起動します。

log4jからログバックへの移行

log4jを使用していた前のバージョンからアップグレードしている場合は、ログバックPropertiesTranslator Webアプリケーションを使用してlog4j.propertiesファイルをlogback.xmlに変換することができます。

ログ・ファイル・ローテーションの使用

デフォルトのポリシーでは、サイズが20MBを超えると、system.logファイルをローリングします。アーカイブはzip形式で圧縮されます。ログバックは、ログ・ファイルにsystem.log.1.zipsystem.log.2.zipなどの名前を付けます。詳細については、ログバックのドキュメントを参照してください。

拡張コンパクション・ロギングの有効化

ノードのコンパクション・アクティビティーに関する詳細な情報収集の構成と、専用ログ・ファイルへの書き込みについては、「拡張コンパクション・ロギングの有効化」を参照してください。