log4j 構成¶
log4j.properties
ファイルは、cygnus-common リポジトリにあるテンプレート conf/log4j.properties.template
からインスタンス化することができます。
ログ・パス、ファイル名、ロギング・レベルまたはアペンダのデフォルト値の一部を変更しない限り、その内容を編集しないでください。
# Define some default values.
# These can be overridden by system properties, e.g. the following logs in the standard output, which is very useful
# for testing purposes:
# -Dflume.root.logger=DEBUG,console
flume.root.logger=INFO,LOGFILE
#flume.root.logger=DEBUG,console
flume.log.dir=/var/log/cygnus/
flume.log.file=cygnus.log
# Logging levels for certain components.
log4j.logger.org.apache.flume.lifecycle = INFO
log4j.logger.org.jboss = WARN
log4j.logger.org.mortbay = INFO
log4j.logger.org.apache.avro.ipc.NettyTransceiver = WARN
log4j.logger.org.apache.hadoop = INFO
# Define the root logger to the system property "flume.root.logger".
log4j.rootLogger=${flume.root.logger}
# Stock log4j rolling file appender.
# Default log rotation configuration.
log4j.appender.LOGFILE=org.apache.log4j.RollingFileAppender
log4j.appender.LOGFILE.MaxFileSize=100MB
log4j.appender.LOGFILE.MaxBackupIndex=10
log4j.appender.LOGFILE.File=${flume.log.dir}/${flume.log.file}
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=time=%d{yyyy-MM-dd}T%d{HH:mm:ss.SSSzzz} | lvl=%p | corr=%X{correlatorId} | trans=%X{transactionId} | svc=%X{service} | subsvc=%X{subservice} | comp=%X{agent} | op=%M | msg=%C[%L] : %m%n
# Warning: If you enable the following appender it will fill up your disk if you don't have a cleanup job!
# cleanup job example: find /var/log/cygnus -type f -mtime +30 -exec rm -f {} \;
# This uses the updated rolling file appender from log4j-extras that supports a reliable time-based rolling policy.
# See http://logging.apache.org/log4j/companions/extras/apidocs/org/apache/log4j/rolling/TimeBasedRollingPolicy.html
# Add "DAILY" to flume.root.logger above if you want to use this.
log4j.appender.DAILY=org.apache.log4j.rolling.RollingFileAppender
log4j.appender.DAILY.rollingPolicy=org.apache.log4j.rolling.TimeBasedRollingPolicy
log4j.appender.DAILY.rollingPolicy.ActiveFileName=${flume.log.dir}/${flume.log.file}
log4j.appender.DAILY.rollingPolicy.FileNamePattern=${flume.log.dir}/${flume.log.file}.%d{yyyy-MM-dd}
log4j.appender.DAILY.layout=org.apache.log4j.PatternLayout
log4j.appender.DAILY.layout.ConversionPattern=time=%d{yyyy-MM-dd}T%d{HH:mm:ss.SSSzzz} | lvl=%p | corr=%X{correlatorId} | trans=%X{transactionId} | svc=%X{service} | subsvc=%X{subservice} | comp=%X{agent} | op=%M | msg=%C[%L] : %m%n
# Console appender, i.e. printing logs in the standar output.
# Add "console" to flume.root.logger above if you want to use this.
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.target=System.err
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=time=%d{yyyy-MM-dd}T%d{HH:mm:ss.SSSzzz} | lvl=%p | corr=%X{correlatorId} | trans=%X{transactionId} | svc=%X{service} | subsvc=%X{subservice} | comp=%X{agent} | op=%M | msg=%C[%L] : %m%n
レイアウトに関して、フィールドごとの説明です :
time
: ログが生成された日時lvl
: log4j ロギングレベル。受け入れられるレベルは、FATAL
,ERROR
,WARN
,INFO
とDEBUG
でなければならない。corr
: 相関 ID、すべてのIoTプラットフォームに対して一意でトランスバーサルでなければなりません。この ID に関するガイドラインは、何らかの方法で Cygnus エージェントに送信された場合には再利用されなければなりません(例えば Http ヘッダ)。そうでない場合、自動生成されなければなりませんtrans
: トランザクション ID。これは、ユニークで、かつ Cygnus エージェントによって自動生成されていなければなりません。相関 IDを作成する必要がある場合、トランザクション ID と相関 ID は等しくなければなりませんsrv
: 何らかの方法で Cygnus エージェントに送られた FIWARE サービス(例えば Http ヘッダ)*subsrv
: 何らかの形で Cygnus エージェントに送信された FIWARE サブサービス(例えば Http ヘッダ)comp
: Cygnus エージェントの名前。Flume の実行に使用されるコマンドで渡されるものですop
: ログをトレースする Java メソッドの名前msg
: トレースされた関数を含むJavaクラス。クラスの特定の行、およびアプリケーションの提供メッセージ