Java 如何将logback访问与Tomcat 5.5结合使用?

Java 如何将logback访问与Tomcat 5.5结合使用?,java,tomcat,tomcat5.5,logback,Java,Tomcat,Tomcat5.5,Logback,我在Tomcat5.5服务器上运行了几个Web应用程序,我正在改进/更新整个系统中使用的整个日志系统。我已经在logback classic上取得了一些成功。但是,当我尝试使用logback访问(即访问lbAccessStatus servlet)时,会出现以下异常: exception javax.servlet.ServletException: Wrapper cannot find servlet class ch.qos.logback.access.ViewStatus

我在Tomcat5.5服务器上运行了几个Web应用程序,我正在改进/更新整个系统中使用的整个日志系统。我已经在logback classic上取得了一些成功。但是,当我尝试使用logback访问(即访问lbAccessStatus servlet)时,会出现以下异常:

exception javax.servlet.ServletException: Wrapper cannot find servlet class ch.qos.logback.access.ViewStatusMessagesServlet or a class it depends on org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433) ... root cause java.lang.ClassNotFoundException: ch.qos.logback.access.ViewStatusMessagesServlet org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1386) ... 例外 javax.servlet.ServletException: 包装器找不到servlet类 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访问导致了问题。

我还没有在tomcat中使用logback访问。我只和jetty一起用过

不过,我建议尝试以下设置:

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访问将logback核心作为依赖项。因为您在服务器(Valve)和webapp(ViewStatusMessagesServlet)中都使用它,所以应该将它添加到这两个类路径中

您还可以(也应该?)将logback access、logback classic和logback core添加到您的webapp类路径中,而不是将其添加到common/lib中,使其可用于所有webapp


希望能有所帮助。

我还没有在tomcat上使用logback访问。我只和jetty一起用过

不过,我建议尝试以下设置:

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访问将logback核心作为依赖项。因为您在服务器(Valve)和webapp(ViewStatusMessagesServlet)中都使用它,所以应该将它添加到这两个类路径中

您还可以(也应该?)将logback access、logback classic和logback core添加到您的webapp类路径中,而不是将其添加到common/lib中,使其可用于所有webapp


希望这会有所帮助。

如果您也将logback访问放在common/lib中,那么所有的jar都在那里,那么它应该可以在任何地方使用。你试过了吗


在Tomcat6中也对日志记录进行了修改。升级是可能的吗?

如果您将logback访问也放在common/lib中,那么所有jar都在那里,那么它应该在任何地方都可用。你试过了吗


在Tomcat6中也对日志记录进行了修改。升级是可能的吗?

我已经开始工作了。使用maven和logbackclassicJAR以WEB-INF/lib结尾,运行良好。 只有在部署旧版本的WAR时,我才看到相同的错误

mypom.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>

org.slf4j
slf4j api
${slf4j.version}
回写
回归经典
0.9.21
。。。以及myweb.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>

LogbackViewStatusMessages
ch.qos.logback.classic.ViewStatusMessagesServlet
LogbackViewStatusMessages
/倒退

我已经让它工作了。使用maven和logbackclassicJAR以WEB-INF/lib结尾,运行良好。 只有在部署旧版本的WAR时,我才看到相同的错误

mypom.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>

org.slf4j
slf4j api
${slf4j.version}
回写
回归经典
0.9.21
。。。以及myweb.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>

LogbackViewStatusMessages
ch.qos.logback.classic.ViewStatusMessagesServlet
LogbackViewStatusMessages
/倒退

四处传播罐子感觉就像地狱一样。需要使用类加载器详细信息进行调试。如果是这样,请写出更好的答案。四处传播JAR感觉就像地狱。需要使用类加载器详细信息进行调试。如果是这样,请写出更好的答案。