我有几个 Web 应用程序在 Tomcat 5.5 服务器上运行,我正在努力改进/更新整个系统中使用的整体日志记录系统。我已经在 logback-classic 上取得了一些成功。但是,当我尝试使用 logback-access(即访问 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) ...
我已根据 docs 设置了所有内容:
common/lib: logback-classic-0.9.15.jar logback-core-0.9.15.jar server/lib: logback-access-0.9.15.jar
在库中四处走动似乎没有帮助。 logback-classic 似乎工作正常,只是 logback-access 导致了问题。
最佳答案
我已经开始工作了。使用 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>
关于java - 如何将 logback-access 与 Tomcat 5.5 结合使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/854430/