|
Tomcat6ではロギング機構が大きく代わり、デフォルトでJava Logging API
のログが有効になっています。
したがって、各WebappにWEB-INF/classes/commons-logging.properties
でApache Log4Jを使うように設定してあったとしてもそれは効きません。
commons-logging.propertiesを編集して、
以下のように、一旦Logging APIを使うように設定します。
#org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger
org.apache.commons.logging.Log=org.apache.commons.logging.impl.Jdk14Logger
#org.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog
|
そして、WEB-INF/classesに、logging.propertiesというファイルを作ります。
以下が一例です。
handlers = org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
############################################################
# Handler specific properties.
# Describes specific configuration info for Handlers.
############################################################
org.apache.juli.FileHandler.level = FINE
org.apache.juli.FileHandler.directory = ${catalina.base}/logs
org.apache.juli.FileHandler.prefix = sampleapp01.
java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
|
また、$CATALINA_HOME/libに置いてあるjarファイルの中のクラスで
Commons Loggingによるログを使っている場合、
上と同じcommons-logging.propertiesを$CATALINA_HOME/libにも置けばokです。
Tomcat6のサンプルアプリケーションなどの普通の設定では、
System.outやSystem.errの出力はlogging.propertiesで定義したファイルには出力されず、
どこにも残されません。
Webアプリケーションの設定ファイル(XML)で、
「swallowOutput="true"」とすれば、ログファイルに一緒に出力されます。
<Context path="sampleapp1" docBase="C:/usr2/java/java56/sampleapp01"
reloadable="true" crossContext="false" debug="0"
cachingAllowed="false" swallowOutput="true">
... 中略 ...
</Context>
|
なお、Tomcat6のロギング機構をApache Log4Jに置き換える方法もあるようです。
これはおいおいhowtoを見ながら試してみます。
(first uploaded 2008/08/02 last updated 2009/08/24, KQ TAURA-URANO398)
|