【问题标题】:Spring Boot logback-spring.xml creates a log file under path /var/log even if custom log path is defined in the xml and application.properties filesSpring Boot logback-spring.xml 在路径 /var/log 下创建一个日志文件,即使在 xml 和 application.properties 文件中定义了自定义日志路径
【发布时间】:2020-01-29 07:42:51
【问题描述】:

我在logback-spring.xml 文件和application.properties 文件中准备了一个自定义RollingFileAppender 配置。在路径/var/app/sefa/logs 下创建的日志文件 soduncu.log。这是配置的预期行为,但在默认 Linux 日志路径 /var/log/ 下创建了 soduncu.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

【问题讨论】:

  • logging.file 应该只是没有路径的文件名,
  • @SimonMartinelli 我已经在&lt;file&gt;${LOG_DIR}/soduncu.log&lt;/file&gt; 中介绍了这个文件。它没有在任何地方使用过。

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


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多