在tmp

时间:2018-05-17 08:15:54

标签: java spring-boot logging

我已经完成了Spring Boot uses /tmp/spring.log file during testing

但那并没有帮助。我的spring启动应用程序中有一个logback.xml,当我启动它时会在var / tmp / spring.log中创建一个日志。现在这个不能在客户端站点上工作。有没有办法将其配置为不创建它我的后退已经在我在我的appender中定义的日志文件中记录控制台。我甚至都不知道这件事发生了。这个spring.log与Rolling文件appender一起使用,这意味着它将继续每天创建日志。

我删除了:

<!--include resource="org/springframework/boot/logging/logback/base.xml"/-->

来自我的logback.xml,但它仍然没有阻止它访问该文件或创建它

任何帮助将不胜感激

编辑:我的logback.xml

<?xml version="1.0" encoding="UTF-8"?>

<configuration scan="true">
    <include resource="org/springframework/boot/logging/logback/base.xml"/>

    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>logs/fix.%d{yyyy-MM-dd}.log</fileNamePattern>
            <maxHistory>90</maxHistory>
        </rollingPolicy>
        <encoder>
            <charset>utf-8</charset>
            <Pattern>%d %-5level [%thread] %logger{0}: %msg%n</Pattern>
        </encoder>
    </appender>

    <appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
        <queueSize>512</queueSize>
        <appender-ref ref="FILE"/>
    </appender>





<logger name="com.comp.myapp" level="INFO"/>


<contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator">
    <resetJUL>true</resetJUL>
</contextListener>

<root level="INFO">
    <appender-ref ref="FILE" />
    <!--<appender-ref ref="CONSOLE"/>-->
</root>

由此产生的问题是,如果我使用相同的用户两次部署相同的应用程序。两个应用程序都写入相同的文件,这是没有意义的。如果我还在同一台机器上部署了另一个spring boot应用程序,它们将写入tmp文件夹中的相同spring.log。我不明白创建“偷偷摸摸”的日志背后的原因(我会称之为鬼鬼祟祟)

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:0)

添加

<include resource="org/springframework/boot/logging/logback/defaults.xml" />

确实很重要,但是您最终想要的是无需将日志保存到tmp就能获得的所有功能。如果您查看<include resource="org/springframework/boot/logging/logback/base.xml" />,将会发现以下内容:

<included>
    <include resource="org/springframework/boot/logging/logback/defaults.xml" />
    <property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}}/spring.log}"/>
    <include resource="org/springframework/boot/logging/logback/console-appender.xml" />
    <include resource="org/springframework/boot/logging/logback/file-appender.xml" />
    <root level="INFO">
        <appender-ref ref="CONSOLE" />
        <appender-ref ref="FILE" />
    </root>
</included>

因此,您想将<include resource="org/springframework/boot/logging/logback/base.xml" />替换为以下内容:

<include resource="org/springframework/boot/logging/logback/defaults.xml" />
<include resource="org/springframework/boot/logging/logback/console-appender.xml" />
<include resource="org/springframework/boot/logging/logback/file-appender.xml" />
<root level="INFO">
    <appender-ref ref="CONSOLE" />
    <appender-ref ref="FILE" />
</root>

这样,您仍然可以像使用基本xml一样在IDE中看到日志。