我已经安装了 Tomcat,并使用 SLF4J 作为我们的日志框架。我复制slf4j-api-1.6.4.jar
并slf4j-jdk14-1.6.4.jar
进入 Tomcat 库,即$TOMCAT_HOME/lib
.
我假设如果我使用 SLF4J,它将委托给java.util.Logger
,这将委托给底层的 Tomcat 日志框架。但是当我部署并检查我的应用程序时,我看不到任何记录。我所有的异常/日志信息都丢失了。
我的理解是正确的,还是我错过了要保留在课堂路径中的任何内容?
我已经安装了 Tomcat,并使用 SLF4J 作为我们的日志框架。我复制slf4j-api-1.6.4.jar
并slf4j-jdk14-1.6.4.jar
进入 Tomcat 库,即$TOMCAT_HOME/lib
.
我假设如果我使用 SLF4J,它将委托给java.util.Logger
,这将委托给底层的 Tomcat 日志框架。但是当我部署并检查我的应用程序时,我看不到任何记录。我所有的异常/日志信息都丢失了。
我的理解是正确的,还是我错过了要保留在课堂路径中的任何内容?
我没有复制 $TOMCAT/lib 下的 slf4j-api-1.6.4.jar 和 slf4j-jdk14-1.6.4.jar,而是将这些 jar 与 war 应用程序一起提供。在这种情况下,我的异常被记录下来。
可能您需要的是将系统属性添加到您的 CATALINA_OPTS。
对于 Windows 系统,添加到您的 %CATALINA_HOME\bin\catalina.bat 文件:
set CATALINA_OPTS=-Djava.util.logging.config.file=\PATH\TO\YOUR\logging.properties
或在 Linux/UNIX 系统上,添加到您的 $CATALINA_HOME/bin/catalina.sh 文件:
CATALINA_OPTS=-Djava.util.logging.config.file=/PATH/TO/YOUR/logging.properties
不要忘记在 Linux/UNIX 系统中,如果 CATALINA_OPTS 中有多个参数,则需要引用,例如
CATALINA_OPTS="-Xmx256m -Djava.util.logging.config.file=/PATH/TO/YOUR/logging.properties"
这一行是为了确保在启动 Tomcat 时加载您的 logging.properties 文件。
您可以将 Tomcat 配置为使用其文档中描述的 log4j ,将 log4j.properties 放入 $CATALINA_HOME/lib 目录并使用 slf4j-api 和 slf4j-log4j12 桥。所以你有干净的 slf4j API 和 log4j 的优点,比如DailyRollingFileAppender等。