ロギングの構成

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

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

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

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

logback.xmlファイルの場所は、インストールのタイプによって異なります。
パッケージ・インストール /etc/cassandra/logback.xml
tarボール・インストール install_location/conf/logback.xml
Windowsインストール C:\Program Files\DataStax Community\apache-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>
アペンダー構成は、ログとその構成をどこに印刷するかを指定します。最初のアペンダーは、ログをファイルに誘導します。2番目のアペンダーは、ログをコンソールに転送します。以下のロギング機能を変更できます。
  • ローリング・ポリシー
    • ログをアーカイブにローリングするためのポリシー
    • ログ・ファイルの場所と名前
    • アーカイブの場所と名前
    • ローリングをトリガーする最小ファイル・サイズと最大ファイル・サイズ
  • メッセージの形式
  • ログ・レベル

ログ・レベル 

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

  • ALL
  • TRACE
  • DEBUG
  • INFO(デフォルト)
  • WARN
  • ERROR
  • OFF
注: ロギング・レベルを上げると、トラフィックの少ないクラスターでも、大量のログ出力が生成されることがあります。
nodetool getlogginglevelsコマンドを使用して、現在のロギング構成を確認できます。
$ nodetool getlogginglevels
Logger Name                                        Log Level
ROOT                                               INFO
com.thinkaurelius.thrift                           ERROR

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

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

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

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