Springboot不同环境配置不同日志路径以及LOG_PATH_IS_UNDEFINED错误

来源于   https://www.jianshu.com/p/637d075b5dd8

 

Springboot不同环境配置不同日志路径以及LOG_PATH_IS_UNDEFINED错误


2019.12.10 16:11:01字数 893阅读 142

1. 一个很常见的需求

  一个Springboot工程开发直到上线,需要有开发环境、测试环境、生产环境,各个环境对日志输出的路径要求是不一样的,需要在不同环境的配置文件里指定不同环境的日志路径(你可能不是使用这种方法,后面再说)。

2. 如果你去查资料,很容易找到以下方法

  Springboot工程可以设置不同环境的配置文件,比如开发环境application-dev.yml、测试环境application-test.yml、生产环境application-prod.yml,然后在这些yml文件里分别设置日志根目录

logging: 
  path: {你要的日志输出目录}

在logback-spring.xml中通过

<springProperty scope="context" name="logPath" source="logging.path"/>

就能获得{你要的日志输出目录},然后在logback-spring.xml文件中就可以通过${logPath}获取到这个目录并使用。
  这个方法是可以的。但是有问题。

3. 2中方法的问题

  按照2中配置,启动工程时,工程根目录下会生成一个文件夹logPath_IS_UNDEFINED(请注意,到目前为止提到了3次logPath,如果你用的是别的名字,就是别的String,而不是固定的logPath),里面是日志文件,在你指定的日志输出目录,也会生成相应的日志文件。
我们仔细看两处的日志文件,logPath_IS_UNDEFINED记录的是Springboot的图标出现之前的日志,指定目录里面记录的是Springboot的图标出现之后的日志,Springboot图标表示Springboot开始加载,这时候才能从yml文件读取配置。Springboot图标说的就是下面这个东西:

 
image.png

 

  最根本的原因:加载日志是在加载Springboot之前的,刚开始记录日志的时候Springboot还没有开始工作(这个顺序是合理的,可以想想)。

4. 有没有解决办法?

  有。 参考文档在最下面7中。

  1. 参考文档1、2的方法,增加了一个默认日志存储位置,实际上只是名字不叫logPath_IS_UNDEFINED,效果是一样的。
  2. 参考文档3说的方法,很麻烦,我跟作者一样建议你不要用。
  3. 参考文档4跟列出来,就是为了告诉你有的人真的是在抄教程,自己不试一试,然后还说亲测可用。其中有一个人和3的观点一样。

5. 不解决行不行?

  行,因为加载日志配置的日志,丢了实在无关紧要。

6. 我就是要解决这个问题,还要简洁一点,可不可以?

  可以。回到1中提到的“你可能不是使用这种方法,后面再说”,可以在命令行启动jar包时,加上-Dlogging.path={你要的日志输出目录},不等Springboot去读取yml配置文件,直接就有了日志目录这个变量,交给logback-spring.xml文件去使用。
  有什么缺点?回到了原点,日志目录还是运维去配置,而不能让开发在配置文件中预先写好。运维偷懒计划失败。

7.参考

    1. http://www.pianshen.com/article/6905506476/
    2. https://www.jianshu.com/p/e326af51bee5
    3. https://www.cnblogs.com/InformationGod/p/9628065.html
    4. https://www.e-learn.cn/content/wangluowenzhang/642241

 

 

-----------------------------其实我的问题貌似不是上面的,我是IDEA开发环境中中不停的打----------------------------------------------------------------------------------------------------

CONSOLE_LOG_PATTERN_IS_UNDEFINED

只要加上  

<include resource="org/springframework/boot/logging/logback/base.xml" />

就搞定了

--------------------------------------------------------------------------------------------

 

posted @ 2020-03-11 15:33  苦行者的刀  阅读(5949)  评论(0编辑  收藏  举报