Tomcat 6 で Solr 4 を実行しています。アプリケーションは正常に動作していますが、Tomcat が必要な場所にログを書き込むのに問題があります。これが私のconf/logging.properties
ファイルの関連部分です。
handlers = 1catalina.org.apache.juli.FileHandler, \
2localhost.org.apache.juli.FileHandler, \
3manager.org.apache.juli.FileHandler, \
4host-manager.org.apache.juli.FileHandler, \
5solr.org.apache.juli.FileHandler, \
java.util.logging.ConsoleHandler
.handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
############################################################
# Handler specific properties.
# Describes specific configuration info for Handlers.
############################################################
5solr.org.apache.juli.FileHandler.level = FINE
5solr.org.apache.juli.FileHandler.directory = /var/log/solr
5solr.org.apache.juli.FileHandler.prefix = solr.
# SNIP...
############################################################
# Facility specific properties.
# Provides extra control for each logger.
############################################################
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/solr].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/solr].handlers = 5solr.org.apache.juli.FileHandler
# SNIP...
Handler
Tomcat をインストールしたときの設定から変更していないため、s 1 から 4 の設定を省略しました。
Tomcat を起動すると、次のログ ファイルが作成されます。
$ ls -l $CATALINA_HOME/logs
-rw-rw-r-- 1 webapp webapp 11836 Feb 4 18:29 catalina.2013-02-04.log
-rw-rw-r-- 1 webapp webapp 11836 Feb 4 18:29 catalina.out
$ ls /var/log/solr -l
-rw-rw-r-- 1 webapp webapp 0 Feb 4 18:29 solr.2013-02-04.log
ファイルcatalina.out
とcatalina.2013-02-04.log
には、Solr のログ出力が含まれています。私がやろうとしていたlogging.properties
のは、Solr ログを に入れることでした/var/log/solr
。
Tomcat が への変更を取得してlogging.properties
にログ ファイルを作成した/var/log/solr
のに、Solr のログ メッセージが適切な場所に送られず、ルート ロガーに到達することになったのではないかと思います。
Solr は SLF4J を使用します。SLF4J はログをインターフェイスに書き込むことができるはずですがjava.util.logging
、Tomcat はそのインターフェイスの一部 (JULI) を再実装して、コンテキストごとに個別のロガーを使用できるようにします。SLF4J と JULI の間に非互換性はありますか? どうすればこれを回避できますか?