如何阻止Spring Boot自动创建/var/tmp/spring.log日志文件?
解决Spring Boot自动生成/var/tmp/spring.log的问题
我完全懂这种困扰——同一台机器部署多个应用时,共用一个临时日志文件简直是灾难,日志内容全混在一起根本没法排查问题。咱们来一步步搞定它:
先排查最容易忽略的点:外部配置是否触发默认日志
首先检查你的application.properties或者application.yml里有没有配置logging.path、logging.file.name或者logging.file.path这类属性。如果有的话,Spring Boot会自动基于这些配置创建默认的日志文件(比如你看到的/var/tmp/spring.log),哪怕你自己写了logback.xml也没用。直接删掉这些配置就行。
彻底独立配置logback,摆脱Spring Boot默认模板
你之前尝试移除base.xml的引用但没解决问题,大概率是因为配置不够完整,Spring Boot还是补了默认的日志规则。现在咱们写一个完全独立的logback.xml,不依赖Spring Boot的默认配置:
<?xml version="1.0" encoding="UTF-8"?> <configuration scan="true"> <!-- 保持你原来的JUL级别同步监听器 --> <contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator"> <resetJUL>true</resetJUL> </contextListener> <!-- 自定义滚动文件Appender,和你原来的配置一致 --> <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,提升性能 --> <appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender"> <queueSize>512</queueSize> <appender-ref ref="FILE"/> </appender> <!-- 自定义业务包的日志级别 --> <logger name="com.comp.myapp" level="INFO"/> <!-- Root Logger只绑定咱们自己的Appender,杜绝默认日志 --> <root level="INFO"> <appender-ref ref="ASYNC"/> <!-- 如果需要控制台日志,取消下面注释并添加CONSOLE Appender配置 --> <!--<appender-ref ref="CONSOLE"/>--> </root> <!-- 可选:控制台日志Appender,按需启用 --> <!-- <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <charset>utf-8</charset> <Pattern>%d %-5level [%thread] %logger{0}: %msg%n</Pattern> </encoder> </appender> --> </configuration>
确保配置文件被正确加载
- 把这个配置文件放在
src/main/resources目录下(Maven/Gradle项目的标准资源目录),Spring Boot启动时会自动加载它。 - 如果还是有问题,启动应用时添加系统属性强制指定配置文件:
-Dlogging.config=classpath:logback.xml。
最后验证
重启应用后,检查/var/tmp目录下是否还会生成spring.log,同时确认你的自定义日志文件(logs/fix.xxxx-xx-xx.log)正常生成即可。
内容的提问来源于stack exchange,提问作者sarmahdi
相关产品推荐
相关产品推荐

