slf4j + logback でログを毎時ローテートするsolrのwarファイルを作成する
概要
solr (tomcat6) のロギングはデフォルトがJDK loggingみたいなのだけど、こいつだと毎時ログのローテートをするのが困難なのでslf4j + logbackを使って毎時ローテートできるwarファイルを作る手順。JAVA関係のロギングは
の組み合わせで成り立ってる場合が多いみたいで、API、Utilityともにいくつか種類があるみたい。
少し前までは commons-logging + log4j という組み合わせが主流だったみたいだけど、昨今は slf4j + logback という流れになってきてる様子。
solr自体はslf4j + JDK loggingをデフォルトで採用しているようなので JDK logging -> logbackを行えば良いという事になる
手順
wget http://ftp.riken.jp/net/apache/lucene/solr/3.4.0/apache-solr-3.4.0-src.tgz wget http://logback.qos.ch/dist/logback-1.0.0.tar.gz tar zxvf apache-solr-3.4.0-src.tgz tar zxvf logback-1.0.0.tar.gz mkdir apache-solr-3.4.0/solr/webapp/web/WEB-INF/classes cp logback-1.0.0/logback-core-1.0.0.jar apache-solr-3.4.0/solr/lib/ cp logback-1.0.0/logback-classic-1.0.0.jar apache-solr-3.4.0/solr/lib/
logbackの設定ファイルを作成。出力先は/var/log/tomcat6/solr.YYYY-MM-DD_HH.log
------ apache-solr-3.4.0/solr/webapp/web/WEB-INF/classes/logback.xml ------/var/log/tomcat6/solr.%d{yyyy-MM-dd_HH}.log 72 %-4relative [%thread] %-5level %logger{35} - %msg%n
warファイルを作成する
cd apache-solr-3.4.0 ant compile cd solr ant dist
apache-solr-3.4.0/solr/dist/apache-solr-3.4-SNAPSHOT.war が毎時ローテートに対応したsolrのwarファイルになる。