即使在xml和application.properties文件中定义了自定义日志路径,Spring Boot logback-spring.xml也会在/ var / log路径下创建一个日志文件

时间:2020-01-29 07:42:51

标签: spring-boot rollingfileappender application.properties spring-logback

我在RollingFileAppender文件和logback-spring.xml文件中准备了自定义application.properties配置。在路径/var/app/sefa/logs下创建的日志文件soduncu.log。这是配置的预期行为,但是在默认的Linux日志路径soduncu.log下创建了/var/log/的意外情况。我试图防止这种意外的日志文件创建,但是我不能。这是什么情况,我做错了什么?

logback-spring.xml:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<springProperty name="LOG_DIR" source="logging.path" defaultValue="/var/app/sefa/logs">
</springProperty>
<appender name="ROLLING"
    class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${LOG_DIR}/soduncu.log</file>
    <rollingPolicy
        class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
        <!-- rollover daily -->
        <fileNamePattern>${LOG_DIR}/soduncu-%d{yyyy-MM-dd}.%i.log
        </fileNamePattern>
        <maxFileSize>10MB</maxFileSize>
        <maxHistory>60</maxHistory>
        <totalSizeCap>20GB</totalSizeCap>
    </rollingPolicy>
    <encoder>
        <pattern>%date %-4relative [%thread] %-5level %logger{35} - %msg %n</pattern>
    </encoder>
</appender>
<root level="WARN">
    <appender-ref ref="ROLLING" />
</root> 
</configuration>

application.properties:

logging.path=/var/app/sefa/logs
logging.file=/var/app/sefa/logs/soduncu.log
logging.level.root=INFO
logging.level.org.springframework=ERROR
logging.level.com.nuvia=DEBUG

这是到两个不同路径下的日志文件的一个Linux进程ID链接:

/proc/14368/fd/1 -> /var/log/soduncu.log
/proc/14368/fd/2 -> /var/log/soduncu.log
/proc/14368/fd/6 -> /var/app/sefa/logs/soduncu.log

1 个答案:

答案 0 :(得分:0)

我无法使用您的代码复制此行为。 尝试更改

name="LOG_DIR" source="logging.path" 

name="LOG_DIR_PATH" source="log.dir.path"

看看会发生什么 确保首先从var / log中删除soduncu.log。 希望对您有所帮助。