Java -- ELK之从nacos获取logback.xml配置信息

背景:

        之前本地搭建好ELK后,随便起一个项目,可正常日志上送,但是后面我把elk部署到测试环境中发现,本地项目的日志就无法正常上送了,之前我是把上送地址配置到nacos上的,logback.xml中读取nacos然后日志上送指定ip。

配置信息:

        logback.xml

<!--LogStash访问host-->
    <springProperty name="LOG_STASH_HOST" scope="context" source="logstash.host" defaultValue="127.0.0.1"/>

        nacos

logstash:
  host: 192.168.0.111

原因分析:

        之前因为elk和项目都在一台机器上,所以其实原来也没有读取到nacos的:“logstash.host”这个参数,因为logback.xml后面有个默认之“127.0.0.1”,所以没影响到正常上送日志。

        而为什么logback.xml没有获取到nacos上的配置信息呢? 后面查了资料发现logback.xml和bootstrap.xml这类文件属于系统默认加载文件,不需要指定文件名。所以logback.xml在nacos加载之前就已经加载了,获取不到“logstash.host”参数后就用了默认值,所以我的nacos配置相当于是失效的。

解决:

        第一步       

         bootstrap.xml这个改名,我改成了logback-nacos.xml,这样系统就不会自动加载这个配置文件

        第二步

        在nacos上添加配置文件logback-nacos.xml

logging:
  config: classpath:logback-nacos.xml

        

                这样logback-nacos.xml 就会在nacos加载之后加载,就可以正常获取“logstash.host”参数值

结果:

        顺利解决

猜你喜欢

转载自blog.csdn.net/DGH2430284817/article/details/130341435