之前项目采用springboot+springcloud+slf4j,日志生成的时候则会出现appName_IS_UNDEFINED的警告,随之就会在项目的根路径下面出现logPath_IS_UNDEFINED的文件夹,如果仔细观看,就会发现这个日志路径记录的是项目的日志;但是我的项目的日志路径配置的不是在项目的根路径,而在/Users/**/opt/logs/***.log这个路径里;然后我的log的配置如下 注意:因为我用的是.properties的配置文件,就不再声明.yml,他们的用法可以自行百度
![3c9f385824082a5da41c25188fd5ed83.png](https://i-blog.csdnimg.cn/blog_migrate/173e082d160dac649f40da79af6521a3.jpeg)
这个配置我是放在application.properties,如果单单是springboot项目,那么这中配置是没有问题,但是结合我们的springcloud就会出现问题;
原因是Spring Cloud会创建一个`Bootstrap Context`,作为Spring应用的`Application Context`的父上下文。初始化的时候,`Bootstrap Context`负责从外部源加载配置属性并解析配置。这个时候就需要bootstrap.properties文件去加声明资源,这个是第一步;
由于项目中使用了日志在第一步的时候就需要去加载日志相关的信息,但是在bootstrap.properties中没有声明,而application.properties是在第二步进行加载,这样就出现了appName_IS_UNDEFINED,随之在项目根路径下出现了logPath_IS_UNDEFINED文件夹;
解决方法就是:在resource下面新建bootstrap.properties,然后将日志等公共信息配置进去即可;
参考:【Springboot】使用logback莫名出现 IS_UNDEFINED 日志目录,其中记录的是 bootstrap.info.log 相关日志
SpringCloud入门之常用的配置文件 application.yml和 bootstrap.yml区别
以上仅供参考,如有不对可留言,勿喷