※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

Tomcatのこと

基本的に備忘録として使います。 ほとんど更新はありませんのでご了承ください。

最新のjavaを使ってみる

インストーラを取得します。今回は、jdk-1_5_0_15-linux-i586.bin です。

# chmod 777 jdk-1_5_0_15-linux-i586.bin 
# ./jdk-1_5_0_15-linux-i586.bin 
# mv jdk1.5.0_15/ /usr/local/.

展開します(のメモ)

Tomcatのサイトからソースを頂きます。 今回頂いたのは、apache-tomcat-5.5.26.tar.gz です。
インストール先を/opt/tomcatとします。

  • 展開して配置
    # tar zxvf apache-tomcat-5.5.26.tar.gz
    # mv apache-tomcat-5.5.26 /opt/.
    # mv /opt/apache-tomcat-5.5.26 /opt/tomcat
    

log4jの設定

http://jakarta.apache.org/ から最新のlog4jを取得する。
今回取得したのはついでのものもあわせて、
・apache-log4j-1.2.15.tar.gz
・apache-log4j-extras-1.0.tar.gz
・commons-logging-1.1.1-bin.tar.gz

  • 展開する。 [#qd457fb4]
    # tar zxvf apache-log4j-1.2.15.tar.gz
    # find /opt/tomcat/ -type d -name "*lib" \
    | awk '{print "cp -p apache-log4j-1.2.15/log4j-1.2.15.jar",$1"/."}' | sh
    
    # tar zxvf apache-log4j-extras-1.0.tar.gz
    # find /opt/tomcat/ -type d -name "*lib" \
    | awk '{print "cp -p apache-log4j-extras-1.0/apache*.jar",$1"/."}' | sh
    
    # tar zxvf commons-logging-1.1.1-bin.tar.gz
    # find /opt/tomcat/ -type d -name "*lib" \
    | awk '{print "cp -p commons-logging-1.1.1/commons-logging*.jar",$1"/."}' | sh
    

通常ログ出力

  • log4j.properties
    #ログ出力レベル。Appender名称はFILE。
    log4j.rootCategory=INFO, FILE
    #Apeenderのクラス
    log4j.appender.FILE=org.apache.log4j.FileAppender
    #出力先
    log4j.appender.FILE.File=/opt/tomcat/logs/log4j.log
    #追記する
    log4j.appender.FILE.Append=true
    #レイアウトクラス
    log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
    #レイアウトパターン
    log4j.appender.FILE.layout.ConversionPattern=%d %-5p [%t] [%C{1}#%M] %m%n
    #log4j.appender.FILE.layout.ConversionPattern=%d %-5p [%t] [%c] - %m%n
    #log4j.appender.FILE.layout.ConversionPattern=%d %-5p [%t] [%c] - %m (%F:%L)%n
    
  • ログ出力レベル
    メッセージレベルの高い順は、FATAL、ERROR、WARN、INFO、DEBUG
  • 設定できるレイアウトクラス
    レイアウトクラス 概要
    org.apache.log4j.SimpleLayout シンプルなレイアウト。デフォルトレイアウト
    org.apache.log4j.TTCCLayout 時間、スレッド名、カテゴリ名、メッセージを出力する。
    org.apache.log4j.HTMLLayout HTML形式で出力する。
    org.apache.log4j.XMLLayout XML形式で出力する。
    org.apache.log4j.PatternLayout ユーザでレイアウトを指定できる。指定可能なレイアウトパターンは以下を参照して下さい。
  • 設定できるレイアウトパターン
    レイアウトパターン 概要
    %c カテゴリー名。 %c{1} と記述した場合、一番「下の」 レベルのみ出力できる。
    「sample.pg.LoggerSample」の場合、「LoggerSample」となる。
    %C ログを生成したクラス名。カテゴリ名では無くクラス名。
    %C{1} と記述した場合、一番「下の」 レベルのみ出力できる。
    「sample.pg.LoggerSample」の場合、「LoggerSample」となる。
    %d 日付。 %d{yyyy-MMM-dd HH:mm:ss,SSS} の様に詳細に指定できる。
    %l %F、%L、%Mを纏めた情報。※性能に問題あり。
    %F ログを生成したソースファイル名。※性能に問題あり
    %L ログを生成した箇所のソースの行番号。※性能に問題あり
    %M ログを生成したメソッドの名前。※性能に問題あり
    %m ログメッセージ
    %x NDC でpushした値
    %X{key} MDC に保存された key の値
    %n 改行コードを生成する。
    %p ログレベル(FATALやINFOなど)
    %r アプリケーションが開始してからの通算時間(ミリ秒)
    %t ログを生成したスレッド名

日次/毎時/月次などのサイクルでログローテイト

  • log4j.properties
    #ログ出力レベル。Appender名称はFILE。
    log4j.rootCategory=INFO, FILE
    #Apeenderのクラス
    log4j.appender.FILE=org.apache.log4j.DailyRollingFileAppender
    #出力先
    log4j.appender.FILE.File=/opt/tomcat/logs/log4j.log
    #ローテーションパターン設定
    log4j.appender.FILE.DatePattern='.'yyyy-MM-dd
    #追記する
    log4j.appender.FILE.Append=true
    #レイアウトクラス
    log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
    #レイアウトパターン
    log4j.appender.FILE.layout.ConversionPattern=%d %-5p [%t] [%C{1}] %m%n
    
  • 設定できるプロパティ
    プロパティ 定義内容
    DatePattern ローテートサイクルを、「月次」、「週次」、「日次」、「毎時」か指定する。詳細は、以下を参照して下さい。
    File 出力ファイルパス
    Append trueを指定した場合は、追加でファイル出力します。デフォルトはfalse
    BufferedIO trueを指定した場合、バッファリングします。デフォルトは、false
    BufferSize バッファリングする場合のバッファサイズを指定します。
    Encoding ログ出力で使用するエンコーディングを指定します。デフォルトは、システムデフォルトエンコーディングが使用されます。
    Threshold ”INFO”を指定すると、INFO以下のログは出力せずに無視する
  • 設定できるパターン
    パターン 定義内容
    '.'yyyy-MM 月次でローテーションします。
    2006年6月の例) ファイル名.2006-06
    '.'yyyy-ww 週次でローテーションします。”ww”には、年初からの通算の週数が指定されます
    '.'yyyy-MM-dd 日次でローテーションします。
    2006年6月12日の例) ファイル名.2006-06-12
    '.'yyyy-MM-dd-a 毎日AM0:00とPM:12:00にローテンションします。
    2006年6月12日AM0:00の例) ファイル名.2006-06-12-AM
    '.'yyyy-MM-dd-HH 毎時でローテーションします。
    2006年6月12日10時の例) ファイル名.2006-06-12-10
    '.'yyyy-MM-dd-HH-mm 毎分でローテーションします。
    2006年6月12日10時25分の例) ファイル名.2006-06-12-10-25

ファイルサイズ容量でログローテイト

  • log4j.properties
    #ログ出力レベル。Appender名称はFILE。
    log4j.rootCategory=INFO, FILE
    #Apeenderのクラス
    log4j.appender.FILE=org.apache.log4j.RollingFileAppender
    #出力先
    log4j.appender.FILE.File=/opt/tomcat/logs/log4j.log
    #ローテーションサイズ設定
    log4j.appender.FILE.MaxFileSize= 10MB
    #世代数設定
    log4j.appender.FILE.MaxBackupIndex= 7
    #追記する
    log4j.appender.FILE.Append=true
    #レイアウトクラス
    log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
    #レイアウトパターン
    log4j.appender.FILE.layout.ConversionPattern=%d %-5p [%t] [%C{1}] %m%n
    
  • 設定できるプロパティ
    プロパティ 定義内容
    MaxFileSize ローテンションするログファイルサイズを指定します。
    「1024」、「2KB」、「5MB」と指定できます。
    MaxBackupIndex バックアップファイルをいくつ保持するか指定します。
    例えば、MaxBackupIndex=3を指定すると、ログファイル.1→ログファイル.2→ログファイル.3とローテンションしていき、それ以上古くなると破棄されます。
    File 出力ファイルパス
    Append trueを指定した場合は、追加でファイル出力します。デフォルトはfalse
    BufferedIO trueを指定した場合、バッファリングします。デフォルトは、false
    BufferSize バッファリングする場合のバッファサイズを指定します。
    Encoding ログ出力で使用するエンコーディングを指定します。デフォルトは、システムデフォルトエンコーディングが使用されます。
    Threshold ”INFO”を指定すると、INFO以下のログは出力せずに無視する