解决springboot使用logback日志出现LOG_PATH_IS_UNDEFINE

发布时间:2021-07-17 21:51 来源:脚本之家 阅读:0 作者:BeiShangBuZaiLai 栏目: 编程语言 欢迎投稿:712375056

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是什么它不是你application.properties配置的 logging.path key, 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配置

到此这篇关于解决springboot使用logback日志出现LOG_PATH_IS_UNDEFINED文件夹的问题的文章就介绍到这了,更多相关springboot logback LOG_PATH_IS_UNDEFINED内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

免责声明:本站发布的内容(图片、视频和文字)以原创、来自本网站内容采集于网络互联网转载等其它媒体和分享为主,内容观点不代表本网站立场,如侵犯了原作者的版权,请告知一经查实,将立刻删除涉嫌侵权内容,联系我们QQ:712375056,同时欢迎投稿传递力量。