14

セットアップ: Eclipse Juno R、Tomcat 7.0.8、Tomcat は Eclipse プラグインを介して実行されます。Eclipse からの Tomcat 起動構成には VM 引数 -Djava.util.logging.config.file="C:\WS\Serverlogs\tomcat7\conf\logging があります。 .properties" (参照: Eclipse で Tomcat のログ ファイルはどこで確認できますか? ) 次のエラーが発生します。

Can't load log handler "1catalina.org.apache.juli.FileHandler"
java.lang.ClassNotFoundException: 1catalina.org.apache.juli.FileHandler
java.lang.ClassNotFoundException: 1catalina.org.apache.juli.FileHandler
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.util.logging.LogManager$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.util.logging.LogManager.loadLoggerHandlers(Unknown Source)
    at java.util.logging.LogManager.addLogger(Unknown Source)
    at java.util.logging.LogManager$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.util.logging.LogManager.<clinit>(Unknown Source)
    at java.util.logging.Logger.getLogger(Unknown Source)
    at org.apache.juli.logging.DirectJDKLog.<init>(DirectJDKLog.java:71)
    at org.apache.juli.logging.DirectJDKLog.getInstance(DirectJDKLog.java:196)
    at org.apache.juli.logging.LogFactory.getInstance(LogFactory.java:170)
    at org.apache.juli.logging.LogFactory.getInstance(LogFactory.java:242)
    at org.apache.juli.logging.LogFactory.getLog(LogFactory.java:293)
    at org.apache.catalina.startup.Bootstrap.<clinit>(Bootstrap.java:57)
Can't load log handler "1catalina.org.apache.juli.FileHandler"

「1catalina.org.apache.juli.FileHandler」、「2localhost.org.apache.juli.FileHandler」などにも同様のエラーがあります。これらのクラスは、/bin の tomcat-juli.jar から取得されることを理解しています。この jar をサーバー クラスパス (Eclipse -> サーバー -> 開く -> Open Lauch 構成 -> クラスパス -> ユーザー エントリ) に追加しましたが、同じエラーが発生しました。logging.properties の内容は次のとおりです。

handlers = 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler, 3manager.org.apache.juli.FileHandler, 4host-manager.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler

.handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler

1catalina.org.apache.juli.FileHandler.level = FINE
1catalina.org.apache.juli.FileHandler.directory = C:\WS\Serverlogs\tomcat7/logs
1catalina.org.apache.juli.FileHandler.prefix = catalina.

2localhost.org.apache.juli.FileHandler.level = FINE
2localhost.org.apache.juli.FileHandler.directory = C:\WS\Serverlogs\tomcat7/logs
2localhost.org.apache.juli.FileHandler.prefix = localhost.

3manager.org.apache.juli.FileHandler.level = FINE
3manager.org.apache.juli.FileHandler.directory = C:\WS\Serverlogs\tomcat7/logs
3manager.org.apache.juli.FileHandler.prefix = manager.

4host-manager.org.apache.juli.FileHandler.level = FINE
4host-manager.org.apache.juli.FileHandler.directory = C:\WS\Serverlogs\tomcat7/logs
4host-manager.org.apache.juli.FileHandler.prefix = host-manager.

java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.FileHandler

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = 3manager.org.apache.juli.FileHandler

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].handlers = 4host-manager.org.apache.juli.FileHandler

入力/ガイダンスは大歓迎です。これらを見つけまし たTomcat JULIログを構成してログファイルをロールする方法? Local Tomcat Environment Not Starting ですが、私の問題は違うようです。

Edit1 "-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager" をサーバーの VM 引数に追加し、logging.properties で "\" を "/" に変更するとうまくいきました。Tomcat Logging FAQ へのポインタを提供してくれた Robin に感謝します。

ありがとう、VJ

4

2 に答える 2

19

次のシステム プロパティが設定されていることを確認します。

-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager

こちらの tomcat ユーザーのメーリング リストで見られるように。

Tomcat 起動スクリプトを使用する代わりに、YAJSWを使用して Tomcat を起動する際にも同じ問題が発生しました。

于 2013-01-02T22:44:49.347 に答える
0

この特定の質問については、FAQ を確認できます: http://wiki.apache.org/tomcat/FAQ/Logging

または、次のような別の logging.properties を使用できます。

log4j.rootLogger=DEBUG, A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout

# Print the date in ISO 8601 format
log4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p %c - %m%n

# Print only messages of level WARN or above in the package com.foo.
log4j.logger.com.foo=WARN
于 2012-10-04T13:47:12.147 に答える