[Editor]idea 在 Win 上的 Logback 环境变量

在使用日志logback的时候经常会出现一些环境变量的问题,现把遇到的问题都归纳在这里,增量更新哦

  1. Logback在Win10的idea中以文件的形式输出, 我使用的是本地的Tomcat,但是在logback配置中路径添加上下文环境变量:${catalina.base}, 定位的位置竟然在idea的项目路径下产生了一个文件夹catalina.base_IS_UNDEFINED,甚是纳闷,但是如果我打包的话,把war拷贝到Tomcat的webapps下,点击start.bat运行,在logs下却是正常生成日志文件的。

    • 今天晚上公司摸底考试, 完后没事,就来研究了一下。言归正传,想到这个问题的时候突然想到还有另外一个变量,那就是${catalina.home},我瞬间懵逼,这两个东西差别在哪呢?瞪,是瞪不出答案的。于是乎去问了度娘,参见这里。
    • ${catalina.base}和${catalina.home}的区别:
      • ${catalina.home}:即安装目录,指向公用信息的位置,就是bin和lib的父目录;
      • ${catalina.base}:即工作目录,指向每个Tomcat目录私有信息的位置,就是conflogstempwebappswork的父目录;
    • 根据上面的陈述,${catalina.home}指的是Tomcat系统运行必须的文件依赖库,而${catalina.base}则是一个Tomcat在运行的时候的运行配置、生成临时文件、运行的war等文件,按照道理应该配置${catalina.base}, 不管是在idea中配置的还是真的Tomcat都应该在这个Tomcat的logs文件夹中生成日志,而事实并非如此,即如果使用了base,在真实的Tomcat是正常的在logs目录下生成,而在Idea中是在项目的根目录下生成一个catalina.base_IS_UNDEFINED;由此可想,应该是Idea配置的Tomcat的配置问题吧!
    • 而且,如果是从Idea中配置的本地Tomcat,那么${catalina.home}的值是由Tomcat来设置的;即:在Idea中配置一个新的Tomcat,Idea就帮我们把这个Tomcat的目录设置为${catalina.home}的值,而我们不用在系统的环境变量中声明Tomcat的位置;
  2. 最近SpringBoot项目中同事把Logback的目录写死了,结果上来就报错,因为我电脑上根本没有那个盘,这样只能自己去配置了,于是对于前一次的研究不是很满意,就去网上找答案,但是还是没有什么结果,就想着这样配置吧,于是乎,手动在${}中敲cata的时候,突然间,万能的idea居然给我提示:env.CATALINA_HOME,我万神的idea谢谢你,我就把手动再敲了一下env.出来一堆,发现很多都是我自己在系统的环境变量中配置的

    • 图中有的部分你可能没有,也可能你有的我没有,不要大惊小怪,看名字就能指挥刀真正的意义了;还有一点必须知道:不是所有的项目都在Win和Linux下通用,所以慎重选择,以防在Linux机器上报错而抓瞎:
      [Editor]idea 在 Win 上的 Logback 环境变量_第1张图片
      万能的idea给出的env
    • 关于logback中的变量,官方文档是这么说的:https://logback.qos.ch/manual/configuration.html#variableSubstitution

好了,今天就更新到这里吧,谢谢 (^-^)V

你可能感兴趣的:([Editor]idea 在 Win 上的 Logback 环境变量)