ログの扱い

最終更新日: 2022年3月24日
R8 | R9

さまざまなログファイル

system.log

Webアプリケーションに対するすべての操作が記録されます。アプリケーションの起動と停止に関わる各サービスの初期化と停止情報から、誰がいつログオンし、どのような操作を行ったかが記録されます。ジョブについての記録も行われます。

このファイルはログが発生した日付時刻に応じて出力されます。

catalina.YYYY-MM-DD.log

Tomcat本体に関するログです。サービスの起動時、停止時の情報も含まれます。

system.logと同様に、ログが発生した日付時刻に応じて出力されます。

コンソールに出力される catalina.out とは異なります。catalina.out はローテートされません。これは Tomcat の仕様です。catalina.out のローテートは別のソフト (例 logrotate) を使うようにしてください。

Hibernate の SQL 出力を有効にした場合

HibernateのSQL出力を有効にした場合、wagbyアプリケーションを実行するOSによって次のようになります。

Windows OS の場合

コンソールのみに出力されます。本ログファイルには出力されません。

Linux OS の場合

コンソールおよび本ログファイルの両方に出力されます。

localhost.YYYY-MM-DD.log

Tomcat内で実行するウェブアプリケーションのログが出力されます。 サービスの起動時と停止時に (Wagbyが内部で利用しているミドルウェアである)SpringやQuartz(ジョブ実行用)のログが出力されます。

system.logと同様に、ログが発生した日付時刻に応じて出力されます。

ログファイルの出力先

system.log

system.log の出力先は log4j.properties というファイルで指定しています。 このファイルは wagbyapp\webapps\$(APPNAME)\WEB-INF\classes フォルダに用意されています。

標準では、出力先の設定は次のようなっています。

log4j.appender.F.File=${catalina.home}\logs\system.log

${catalina.home}とは、Tomcat の起点ディレクトリを指します。$(DEVHOME)\wagbyapp と同じです。 この部分を修正することで、出力先を変えることができます。

このファイルをカスタマイズした場合、$(DEVHOME)\customize\resources フォルダへ保存してください。次回以降のビルドでカスタマイズファイルが反映されます。

catalina.YYYY-MM-DD.log
localhost.YYYY-MM-DD.log

これらのファイルは logging.properties という設定ファイルで出力先が指定されています。 このファイルは wagbyapp\conf フォルダに用意されています。

標準では、出力先の設定は次のようなっています。

1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
2localhost.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs

${catalina.base}とは、Tomcat の起点ディレクトリを指します。$(DEVHOME)\wagbyapp と同じです。

このファイルをカスタマイズした場合、$(DEVHOME)\customize\tomcat\conf フォルダへ保存してください。

system.logをコンソールとファイルの両方に出力する

出荷時の log4j.properties はログ (system.log) の内容をファイルに出力するようになっています。これをコンソールとファイルの両方に出力させる場合は、次のようにしてください。

log4j.rootCategory=INFO, F, C
log4j.appender.F=org.apache.log4j.DailyRollingFileAppender
log4j.appender.F.DatePattern='.'yyyy-MM-dd
log4j.appender.F.File=${catalina.home}/logs/system.log
log4j.appender.F.layout=jp.jasminesoft.util.log4j.ThrowablePatternLayout
log4j.appender.F.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%p %c %M] %m%n
log4j.appender.C=org.apache.log4j.ConsoleAppender
log4j.appender.C.Target=System.out
log4j.appender.C.layout=jp.jasminesoft.util.log4j.ThrowablePatternLayout
log4j.appender.C.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%p %c %M] %m%n
(以下、略)

ログファイルのサイズ

Webアプリケーションが起動している間、ログファイルは増え続けます。アプリケーションが自動で削除することはありません。

Wagbyが提供している「ファイル削除」や「ファイル圧縮」ジョブを使うことで、ログファイルの肥大化を抑える運用ができます。ただし、この場合も過去のログファイルはどこかへ保存するような運用を推奨します。ログはいざというときに監査証跡として使えるためです。

その他のツールのログ

データベース操作用スクリプトのログ

ビルドされたアプリケーションである wagbyapp について、bin フォルダ以下にある次のスクリプトファイルも、実行時にログを出力します。

  • check_db.bat (check_db.sh)
  • drop_db.bat (drop_db.sh)
  • export_db.bat (export_db.sh)
  • import_db.bat (import_db.sh)
  • init_db.bat (init_db.sh)
Linux 環境でご利用の場合は、拡張子が .sh のファイルをご利用ください。

check_db

wagbyapp\binをカレントディレクトリにして実行します。実行結果は同ディレクトリにcheck_db.txtファイルとして出力されます。この出力位置はcheck_db.batファイル内で指定されています。

実行時のログファイルは wagbyapp\logs\initdb.log に出力されます。ただし警告以上のログがなければ、出力はされません。

ログファイル名は(system.logと同様に)出力が発生した日に対応した日付情報が付与されます。例えば initdb.log.20170401 といったファイル名となります。

このログファイルの詳細な設定は InitLoader.jar 内に含まれる log4j.properties で指定しています。(変更方法については後述します。)

drop_db,export_db,import_db,init_db

wagbyapp\binをカレントディレクトリにして実行します。実行時のログファイルは wagbyapp\logs\initdb.log に出力されます。ただし警告以上のログがなければ、出力はされません。

ログファイル名は(system.logと同様に)出力が発生した日に対応した日付情報が付与されます。例えば initdb.log.20170401 といったファイル名となります。

このログファイルの詳細な設定は InitLoader.jar 内に含まれる log4j.properties で指定しています。(変更方法については後述します。)

initdb.logの出力先を変更する

initdb.logは次の性質を備えています。

  • ログレベルは "WARN" です。
  • ログはコンソールおよびファイルの両方に出力されます。

これを変更する場合は、次のように設定を行ってください。

  1. 設定を変更したいスクリプトファイルをテキストエディタで開きます。(ここでは export_db.bat を例とします。)
  2. 以下に示すように、-l オプションを使って、ログ出力情報が指定されたファイルを指定します。
    "%JAVA_HOME%\bin\java" -Xmx512m -XX:MaxPermSize=192m -Dcatalina.home=".." -Djava.io.tmpdir="${catalina.home}\temp" -jar InitLoader.jar export -all -check_exists_table true -c ..\webapps\wagby\WEB-INF\export\conf\initdb.xml -l exportlog.properties  -d "%EXPDIR%"
    
  3. 上で指定した「exportlog.properties」ファイルを用意します。この例ではカレントフォルダ、すなわち export_db.bat と同じ場所に保存します。フォルダを別途用意した場合は、export_db.bat が存在するフォルダである wagbyapp\bin からの相対パス指定を行うとよいでしょう。exportlog.properties の例を以下に示します。
    log4j.rootCategory=WARN, C, F
    log4j.appender.C=org.apache.log4j.ConsoleAppender
    log4j.appender.C.layout=jp.jasminesoft.util.log4j.ThrowablePatternLayout
    log4j.appender.C.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%p %c] %m%n
    log4j.appender.F=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.F.DatePattern='.'yyyy-MM-dd
    log4j.appender.F.File=../logs/exportdb.log
    log4j.appender.F.layout=jp.jasminesoft.util.log4j.ThrowablePatternLayout
    log4j.appender.F.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%p %c] %m%n
    
    ここでは、ログの出力先を「../logs/exportdb.log」へと変更しています。