环境:Windows 2003 32 位(我知道,我知道我们正在转向 64 位,但很快)
- Apache Tomcat
- 6.0.35
- JAVA_HOME
- CATALINA_HOME
已配置
转到 Tomcat6w.exe 的 Java 选项卡,我们会看到:
C:\tomcat\bin\tomcat-juli.jar;
C:\tomcat\bin\tomcat-juli.jar;
C:\tomcat\bin\bootstrap.jar
为什么有多个 Tomcat-juli.jar 实例?
了解 Juli 是:Java 实用程序日志记录实现
我的问题是,尽管定义了一个 juli.. 为什么有两个?我们是否只是将其保持为 2,然后让系统自然运行?
最佳答案
它是“Java Util Logging Implement”,以 JRE 中的 java.util.logging 包命名。
JULI 本质上是重新打包的 Apache Commons Logging,删除了所有框架检测代码并硬编码以使用特定的日志框架。默认情况下它使用 j.u.l,但在附加下载中还有一个使用 log4j 的版本。您看到的重复输入是有原因的,但首先我需要解释一些背景。
Tomcat 支持“高级”配置,其中二进制文件与实例分离,因此您可以使用同一组二进制文件 ($CATALINA_HOME) 拥有多个 Tomcat 实例 ($CATALINA_BASE)。这使得升级变得非常简单。在此高级配置中,不同的实例可能想要使用不同的 JULI 版本。例如。虽然有些人使用标准 j.u.l bundle ,但其他人可能希望使用 log4j bundle 。为了支持这一点,每个实例的 JULI JAR 可以放置在 $CATALINA_BASE/bin 中,它会覆盖 $CATALINA_HOME/bin 中的 JAR。因此,类路径搜索顺序为 $CATALINA_BASE/bin:$CATALINA_HOME/bin: 等。
在标准安装中 $CATALINA_BASE == $CATALINA_HOME 因此看起来 JULI JAR 已添加两次。
保留第二个条目是安全的,但如果您愿意,也可以安全地将其删除。
关于java - Tomcat 中 tomcat-juli.jar 的多个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19987849/