首页 > 其他分享 >springboot使用logback日志出现LOG_PATH_IS_UNDEFINED文件夹的问题

springboot使用logback日志出现LOG_PATH_IS_UNDEFINED文件夹的问题

时间:2024-07-15 11:29:35浏览次数:15  
标签:xml log LOG application path 日志 logback UNDEFINED

logback现在基本上已经成为springboot日志框架中使用最多的日志实现,在使用中与各中间件集成的一些注意事项记录如下

 

一 Spring Boot 中 logback 读取application.properties(application.yml) 中的属性

其中使用的时候发现了一个问题,就是如果使用的lobback配置文件的名称是logback.xml 会先出现先找不到设置的属性,然后项目启动起来才会找到,
比如: 

<springProperty scope="context" name="log.path" source="logback.path" defaultValue="logs"/>

说明:其中  source="logback.path" 为 application.properties 中对应的配置节

           name="log.path" 为 日志中可以实际使用的配置节点

<!-- 日志存放路径 -->
<springProperty scope="context" name="logback.path" source="logback.path"/>
<!-- 日志输出格式 -->
<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n"/>
<appender name="jwsbapi" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${logback.path}/jwsbapi-info.log</file>
        <!-- 循环政策:基于时间创建日志文件 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 日志文件名格式 -->
            <fileNamePattern>${logback.path}/jwsbapi.%d{yyyy-MM-dd}.log</fileNamePattern>
            <!-- 日志最大的历史 60天 -->
            <maxHistory>60</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>${log.pattern}</pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <!-- 过滤的级别 -->
            <level>INFO</level>
            <!-- 匹配时的操作:接收(记录) -->
            <onMatch>ACCEPT</onMatch>
            <!-- 不匹配时的操作:拒绝(不记录) -->
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>

日志生成路径会取自source="logback.path" 对应的application.yml中配置的节点路径信息

 

 

记录日志文件存放地址属性,会在项目启动的时候想出现一个找不到log.path_is_UNDIFIND 的目录,项目启动起来后才会读取到属性,在配置路径上生成日志文件。
SpringBoot 配置文件的加载顺序

logback.xml—>application.properties(application.yml)—>logback-spring.xml

二  问题原因分析

在正常情况下,将logback.xml修改为logback-spring.xml即可解决问题的。

 

标签:xml,log,LOG,application,path,日志,logback,UNDEFINED
From: https://www.cnblogs.com/freewsf/p/18302826

相关文章

  • 基于EF Core存储的Serilog持久化服务
    前言Serilog是.NET上的一个原生结构化高性能日志库,这个库能实现一些比内置库更高度的定制。日志持久化是其中一个非常重要的功能,生产环境通常很难挂接调试器或者某些bug的触发条件很奇怪。为了在脱离调试环境的情况下尽可能保留更多线索来辅助解决生产问题,持久化的日志就显得很......
  • Debug Log - Linux下出现 cmake: command not found
    Bug情况:在用脚本安装一些环境时,出现了cmake:commandnotfound的情况,故需要安装cmake。踩坑:网上有人说通过yum来安装cmake,但我先通过apt安装yum(sudoaptinstallyum),再通过yum安装cmake(sudoyuminstallcmake),发现yum找不到对应匹配的包。解决过程:使用cmake--version......
  • NSIS 之 NsDialogs 常见问题解答
    如何启用/禁用控件使用标准NSIS EnableWindow 命令。NSDialogs允许您弹出通过 ${NSD_Create*} 创建的控件的 hwnd (句柄)。EnableWindow 将 hwnd 作为其参数之一。通过它,您可以轻松启用/禁用控件。  !include"nsDialogs.nsh"!include"winmessages.nsh"!incl......
  • SpinalHDL之VHDL 和 Verilog 生成
    本文作为SpinalHDL学习笔记第十六篇,记录使用SpinalHDL代码生成Verilog/VHDL代码的方法。SpinalHDL学习笔记总纲链接如下:SpinalHDL学习笔记_spinalhdlblackbox-CSDN博客目录:1.从SpinalHDL组件生成VHDL和Verilog2.生成的VHDL和Verilog3.VHDL和Verilog属性......
  • 简单的ATM 注册,登录,存钱,取钱,管理员查看 功能的实现,register(注册方法),login(登录方法),lo
    1.main()方法publicclasstest{publicstaticvoidmain(String[]args){ArrayList<people>people=newArrayList<>();Scannerscanner=newScanner(System.in);while(true){System.out.println("......
  • 【价格型需求响应】基于Logistic函数的负荷转移率模型需求响应研究(Matlab代码实现)
     ......
  • systemverilog的关联数组
    关联数组定义在SystemVerilog中,关联数组(AssociativeArrays)是一种非常灵活的数据结构,它可以使用任意类型的键(key)来索引数组中的元素。这使得关联数组特别适合于实现类似哈希表(hashtables)或字典(dictionaries)的功能,其中键可以是字符串、数字或其他复杂类型。data_typearray......
  • 泛微ECOLOGY9-如何实现明细第一行check框勾选禁用、浏览框内仅展示第一行相关的数据和
    实现效果:1.用户/业务需求以付款业务为例,明细表中添加多条同一个供应商的付款计划进行付款审批,审批后接口传入其他系统进行付款。2.需求分析审批完成后的接口仅支持接收一个账户相关的付款申请。明细表中浏览计划申请记录,以第一个行明细数据作为基准,并记录已选择的......
  • 麒麟V10 安装ELK详细步骤(elasticsearch + kibana + logstash)
    一、ELK介绍ELK系统是一个开源的大数据分析和搜索引擎组合,主要由以下三个部分组成:Elasticsearch:作用:一个分布式搜索和分析引擎,可以处理大规模的结构化和非结构化数据。特点:支持全文搜索、结构化搜索和分析、实时搜索和分析、分布式计算,具有高可扩展性和高可用性。Logsta......
  • RK3568平台(基础篇)开机LOGO
    一.开机LOGO概述rk3568开机logo由uboot和kerne两阶段所用图片构成uboot启动阶段主动加载logo.bmp,kernel启动阶段会加载logo.bmp和logokernel.bmp。在内核编译时这两张图片会打包到resource.img镜像,然后再合并到boot.img;logo文件直接关系boot.img大小boot.img分区超出分......