2

Tomcat 5.5 サーバーでいくつかの Web アプリを実行しており、システム全体で使用される全体的なログ システムの改善/更新に取り組んでいます。私はすでに logback-classic である程度の成功を収めています。ただし、logback-access を使用しようとすると (つまり、lbAccessStatus サーブレットにアクセスしようとすると)、次の例外が発生します。

例外

javax.servlet.ServletException:
  ラッパーがサーブレット クラスを見つけることができません
    ch.qos.logback.access.ViewStatusMessagesServlet
  またはそれが依存するクラス

org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
...

根本的な原因

java.lang.ClassNotFoundException:
  ch.qos.logback.access.ViewStatusMessagesServlet

org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1386)
...

ドキュメントに従ってすべてをセットアップしました:

  共通/ライブラリ:
    logback-classic-0.9.15.jar
    logback-core-0.9.15.jar
  サーバー/ライブラリ:
    logback-access-0.9.15.jar

ライブラリを移動しても役に立たないようです。logback-classic は正常に動作しているようですが、問題を引き起こすのは logback-access だけです。

4

3 に答える 3

1

私はそれが働いている。maven と logback-classicでは、jar はWEB-INF/libで終わり、うまく機能します。古いバージョンの WAR をデプロイするときにのみ、同じエラーが発生しました。

私のpom.xmlの依存関係セクションの抜粋

<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-api</artifactId>
  <version>${slf4j.version}</version>
</dependency>
<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>0.9.21</version>
</dependency>

...そして私のweb.xmlの関連部分:

  <servlet>
    <servlet-name>LogbackViewStatusMessages</servlet-name>
    <servlet-class>ch.qos.logback.classic.ViewStatusMessagesServlet</servlet-class>
  </servlet>
  <!-- see http://localhost:8080/oam-portal-portlets/logs -->
  <servlet-mapping>
    <servlet-name>LogbackViewStatusMessages</servlet-name>
    <url-pattern>/logback</url-pattern>
  </servlet-mapping>
于 2010-05-28T11:20:30.407 に答える
0

私はまだ tomcat で logback-access を使用していません。私は桟橋でそれを使用しただけです...

ただし、次の設定を試すことをお勧めします。

common/lib:
  logback-access-0.9.15.jar
  logback-classic-0.9.15.jar
  logback-core-0.9.15.jar
server/lib:
  logback-access-0.9.15.jar
  logback-core-0.9.15.jar

logback-access には、依存関係として logback-core があります。サーバー (Valve) と Web アプリケーション (ViewStatusMessagesServlet) の両方で使用するため、両方のクラスパスに追加する必要があります。

また、logback-access、logback-classic、および logback-core を common/lib に追加する代わりに、webapp クラスパスに追加して、すべての webapps で利用できるようにすることもできます (またすべきですか?)。

それが役立つことを願っています。

于 2009-06-03T04:47:39.770 に答える
-1

logback-access も common/lib に配置すると、すべての jar がそこにあるので、どこでも利用できるはずです。あなたはそれを試しましたか?

また、Tomcat 6 ではロギングが作り直されました。アップグレードは可能ですか?

于 2009-07-26T21:05:51.273 に答える