将日志记录从Tomcat重定向到我的文件(logback)

whhtz7ly  于 2022-11-13  发布在  其他
关注(0)|答案(2)|浏览(213)

我在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文件保持为空。如何将所有日志重定向回它?

emeijp43

emeijp431#

Tomcat使用不同的日志机制-JULI。您要做的是添加jul-to-slf 4j桥。请参见https://www.slf4j.org/legacy.html#jul-to-slf4j。

lnvxswe2

lnvxswe22#

我才发现我的问题有多傻。
答案是Tomcat只是将记录的项目根目录位置更改为& Catalina _HOME&\bin(在我的示例中为C:\apache-tomcat-8.5.81\bin)。文件logging.log是在该目录中创建的,并且一直在正确记录。同时,由于项目目录中的logging.log是空的,我陷入了昏迷。
解决方案只是在logback.xml中描述日志文件的绝对路径:

<file>C:\Users\cognosce\Desktop\myproject\logging.log</file>

相关问题