首页 > 解决方案 > Logback 不会将日志写入文件

问题描述

我有一个 Java 独立的 REST 应用程序,它位于 Tomсat 中。我需要将日志输出到文件,我使用 logback。但是日志不会写入文件。它们显示在控制台中,尽管我删除了控制台附加程序。如果您在 Windows 机器上尝试,一切都会好起来的。在 RedHat 上尝试(没有 GUI),日志不会输出到文件(尽管它们应该)并输出到控制台(尽管它们不应该显示)。该应用程序工作正常,响应查询。

Logback.xml:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <property name="DEV_HOME" value="/var/tmp" />
    <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${DEV_HOME}/mytest.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${DEV_HOME}/mytest-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <maxFileSize>2KB</maxFileSize>
            <maxHistory>4</maxHistory>
            <totalSizeCap>10KB</totalSizeCap>
        </rollingPolicy>
        <encoder class="net.logstash.logback.encoder.LogstashEncoder">
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>
    <root level="INFO">
        <appender-ref ref="file" />
    </root>
</configuration>

在 Eclipse 中,我确实导出到 Runnable jar 文件,我把它扔到 Linux 机器上。我运行如下:

java -jar test.jar & 

标签: javaresttomcatlogback

解决方案


是的,我在 jboss EAP 7.0 上遇到了同样的情况,一切都在窗口机器上运行良好,但是一旦我把它带到 linux 机器上。它不会写一个字。[用于记录的application.properties]

其次,我在 Jboss bin 文件夹中移动了 log4j.properties。application.properties 文件和 springboot 应用程序资源中的同一个文件。

在此处输入图像描述

之后重新启动服务器,您将发现写入指定文件夹的日志


推荐阅读