【问题标题】:How do I use logback-access in combination with Tomcat 5.5?如何将 logback-access 与 Tomcat 5.5 结合使用?
【发布时间】:2009-05-12 19:26:28
【问题描述】:

我有几个 Web 应用程序在 Tomcat 5.5 服务器上运行,我正在努力改进/更新整个系统使用的整体日志记录系统。我已经在 logback-classic 上取得了一些成功。但是,当我尝试使用 logback-access(即访问 lbAccessStatus servlet)时,我得到了这个异常:

例外 javax.servlet.ServletException: Wrapper 找不到 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) ...

我已经按照docs

普通/库: logback-classic-0.9.15.jar logback-core-0.9.15.jar 服务器/库: logback-access-0.9.15.jar

四处走动图书馆似乎没有帮助。 logback-classic 似乎工作正常,只是 logback-access 会导致问题。

【问题讨论】:

    标签: java tomcat tomcat5.5 logback


    【解决方案1】:

    我已经开始工作了。使用 ma​​ven 和 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>
    

    【讨论】:

      【解决方案2】:

      我还没有在 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 添加到您的 webapp 类路径中,而不是将其添加到 common/lib 中,使其可用于所有 webapps。

      希望对您有所帮助。

      【讨论】:

        【解决方案3】:

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

        在 Tomcat 6 中也重新设计了日志记录。是否可以升级?

        【讨论】:

        • 传播 jars 感觉就像 dll 地狱。需要使用类加载器详细信息进行调试。
        • whatnick,在这种情况下,请写出你更好的答案。
        猜你喜欢
        • 2019-02-15
        • 2012-02-18
        • 2010-11-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-11
        • 2012-04-01
        • 2017-06-13
        相关资源
        最近更新 更多