Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring boot Spring Boot RollingFileAppender生成文件,但不追加任何内容_Spring Boot_Spring Logback - Fatal编程技术网

Spring boot Spring Boot RollingFileAppender生成文件,但不追加任何内容

Spring boot Spring Boot RollingFileAppender生成文件,但不追加任何内容,spring-boot,spring-logback,Spring Boot,Spring Logback,我正在使用通过WSL连接到Ubunut的VScode来构建SpringBoot项目。一切正常。现在我正在尝试将日志添加到我的项目中,下面的logback-spring.xml就是我使用的配置。到目前为止,我可以看出它是有效的。我看到控制台打印,它甚至在我想要的路径中生成logback.log文件。但是,文件似乎总是空的。我尝试在这里和那里添加更多的记录器,我所看到的只是ConsoleAppender的控制台输出 <!--Logfile save path--> <propert

我正在使用通过WSL连接到Ubunut的VScode来构建SpringBoot项目。一切正常。现在我正在尝试将日志添加到我的项目中,下面的logback-spring.xml就是我使用的配置。到目前为止,我可以看出它是有效的。我看到控制台打印,它甚至在我想要的路径中生成
logback.log
文件。但是,文件似乎总是空的。我尝试在这里和那里添加更多的记录器,我所看到的只是ConsoleAppender的控制台输出

<!--Logfile save path-->
<property name="LOGS_PATH" value="./logs"/>

<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <layout class="ch.qos.logback.classic.PatternLayout">
        <Pattern>%d{HH:mm} %-5level %logger{36} - %msg%n</Pattern>
    </layout>
</appender>
<appender name="SAMPLE" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
        <pattern>[%d{yyyy-MM-dd HH:mm:ss}:%-3relative][%thread] %-5level %logger{35} - %msg%n</pattern>
    </encoder>
</appender>
<appender name="DAILY_ROLLING_FILE_APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${LOGS_PATH}/logback.log</file>
    <encoder>
        <pattern>[%d{yyyy-MM-dd HH:mm:ss}:%-3relative][%thread] %-5level %logger{35} - %msg%n</pattern>
    </encoder>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>${LOGS_PATH}/logback.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
        <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
            <!-- or whenever the file size reaches 100MB -->
            <maxFileSize>5MB</maxFileSize>
            <!-- kb, mb, gb -->
        </timeBasedFileNamingAndTriggeringPolicy>
        <maxHistory>30</maxHistory>
    </rollingPolicy>
</appender>
<logger name="com.qcells.olap" level="DEBUG">
    <appender-ref ref="SAMPLE" />
</logger>
<logger name="com.qcells.olap" level="INFO">
    <appender-ref ref="DAILY_ROLLING_FILE_APPENDER" />
</logger>
<root level="INFO">
    <appender-ref ref="STDOUT" />
</root>
我相信这是制作日志数据的简单方法,我在控制台上看到打印出的“成功”消息

我试图删除logback.log文件,当我运行项目时,它会重新生成logback.log文件,但仍然没有写入任何内容。 有什么解决办法吗?
提前谢谢

根据您发布的logback-spring.xml,您定义了三个appender。标准件、样品和每日滚动文件附录。第一个标准输出被分配给根记录器

<root level="INFO">
  <appender-ref ref="STDOUT" />
</root>
因为日志消息在日志记录器的层次结构中向上传播,直到它到达根日志记录器,并且消息由附加到它的appender处理

另外两个附加器连接到特定的记录器

<logger name="com.qcells.olap" level="DEBUG">
    <appender-ref ref="SAMPLE" />
</logger>
<logger name="com.qcells.olap" level="INFO">
    <appender-ref ref="DAILY_ROLLING_FILE_APPENDER" />
</logger>

Rx_Client2.class是否在com.qcells.olap下面的包中

因此,只有驻留在“com.qcells.olap”下面的记录器的日志才会被记录到您的滚动文件中。如果希望将所有日志记录到文件中,则必须将其附加到根日志记录器,如STDOUT appender

<root level="INFO">
  <appender-ref ref="STDOUT" />
  <appender-ref ref="DAILY_ROLLING_FILE_APPENDER" />
</root>

根据您发布的logback-spring.xml,您定义了三个appender。标准件、样品和每日滚动文件附录。第一个标准输出被分配给根记录器

<root level="INFO">
  <appender-ref ref="STDOUT" />
</root>
因为日志消息在日志记录器的层次结构中向上传播,直到它到达根日志记录器,并且消息由附加到它的appender处理

另外两个附加器连接到特定的记录器

<logger name="com.qcells.olap" level="DEBUG">
    <appender-ref ref="SAMPLE" />
</logger>
<logger name="com.qcells.olap" level="INFO">
    <appender-ref ref="DAILY_ROLLING_FILE_APPENDER" />
</logger>

Rx_Client2.class是否在com.qcells.olap下面的包中

因此,只有驻留在“com.qcells.olap”下面的记录器的日志才会被记录到您的滚动文件中。如果希望将所有日志记录到文件中,则必须将其附加到根日志记录器,如STDOUT appender

<root level="INFO">
  <appender-ref ref="STDOUT" />
  <appender-ref ref="DAILY_ROLLING_FILE_APPENDER" />
</root>


谢谢!这真的解决了我的问题。如果你不介意的话,我还有一个问题。Rx_客户端2位于com.qcells.ess_server.client中。我修好了这条路,又试了一次,但没有成功。根级别工作但路径不工作的原因是什么?谢谢!这真的解决了我的问题。如果你不介意的话,我还有一个问题。Rx_客户端2位于com.qcells.ess_server.client中。我修好了这条路,又试了一次,但没有成功。根级别工作但路径不工作的原因是什么??