我在Windows上使用Tomcat 8和logback。我这样配置了logback.xml:
<configuration>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>logging.log</file>
<param name="Append" value="false" />
<encoder>
<pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n</pattern>
</encoder>
</appender>
<root level="info">
<appender-ref ref="FILE" />
</root>
我的pom.xml(如果需要):
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.2.11</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.11</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.36</version>
<scope>compile</scope>
</dependency>
当我用public static void main
启动应用程序时,一切都正确地记录到项目中的logging.log文件中。然而,当我用Apache Tomcat 8
启动应用程序时,它有嵌入式日志记录(示例如图所示):
Tomcat embedded logging
所以我的logging.log文件保持为空。如何将所有日志重定向回它?
2条答案
按热度按时间emeijp431#
Tomcat使用不同的日志机制-JULI。您要做的是添加jul-to-slf 4j桥。请参见https://www.slf4j.org/legacy.html#jul-to-slf4j。
lnvxswe22#
我才发现我的问题有多傻。
答案是Tomcat只是将记录的项目根目录位置更改为& Catalina _HOME&\bin(在我的示例中为C:\apache-tomcat-8.5.81\bin)。文件logging.log是在该目录中创建的,并且一直在正确记录。同时,由于项目目录中的logging.log是空的,我陷入了昏迷。
解决方案只是在logback.xml中描述日志文件的绝对路径: