解决springboot使用logback日志出现LOG_PATH_IS_UNDEFINED文件夹的问题
·
application.properties
- 加入以下配置
#logback home
logging.path=D:/logs/esb-producer
logback.xml
<property name="LOG_PATH" value="${LOG_PATH:- }" />
<appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
<File>${LOG_PATH}/info.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_PATH}/info-%d{yyyyMMdd}.log.%i</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>20MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>2</maxHistory>
</rollingPolicy>
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%msg%n
</Pattern>
</layout>
</appender>
- 重点是这段
<property name="LOG_PATH" value="${LOG_PATH:- }" />
${LOG_PATH:-} 用法
${LOG_PATH:-.}- 首先
LOG_PATH是什么它不是你application.properties配置的logging.pathkey,LOG_PATH是logging.path的系统环境变量(请参考下图)直接引用在,不要直接引用logging.path是引用不到的 LOG_PATH=D:/logs/esb-producer-表示分割符,后面的参数是默认路径.表示当前项目根路径也可以是/usr/local/log…举一反三- so
${LOG_PATH:-.}=${D:/logs/esb-producer-当前项目根路径} - 这种方式有可能会生成俩个日志路径 一个是
D:/logs/esb-producer另一个是在当前项目根路径生成的日志 因为spring比logback先启动 所以会在项目更目录生成一个spring的日志 这个就比较恶心了 我想把日志输出到一起怎么做呢
- 首先
${LOG_PATH:- }默认路径设置成空格这样就不会在你的项目根目录生成spring日志文件了(会在你服务器根目录生成)接下来系统日志就会输出到你的自定义目录了
logback配置

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)