繁体   English   中英

未从bootstrap.properties或外部配置服务(spring-cloud-config)中选择日志文件位置

[英]Log file location not being picked from bootstrap.properties or external configuration service(spring-cloud-config)

我已经使用spring-cloud-config来外部化我的服务配置属性。 我已外部化的属性之一是日志文件的位置(使用log4j.xml),例如

<appender name="file" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="${broker.log.location}/${broker.name.log}.log"/>

我的理解是在引导阶段使用了boostrap.properties文件,应该解决在那里定义的属性。 但是,我看到这些属性没有得到解决。 由配置服务提供时也是如此。 它解析的唯一方法是当我将位置作为jvm参数传递时,例如

-Dbroker.name.log=broker1 -Dbroker.log.location=/tmp/rvm_logs/broker

这还意味着无法从外部配置服务中获取这些属性吗? 我做错了什么吗? 为什么不从boostrap.properties或外部配置服务加载这些属性。 我正在使用弹簧云Brixton.M4 releasetrain。 如果需要,我可以粘贴特定的代码段。

从Spring环境属性到log4j.xml,没有任何事情能够进行属性解析。 如果使用logback,则存在logback-spring.xml路由(根据文档,该文件由Spring Boot过滤并应用于logback)。 这里也没有特定于Spring Cloud的内容,因此,如果您需要了解更多信息,请在Spring Boot用户指南中进行查找。

好。 所以我的问题是使用spring-cloud-config时如何外部化日志文件的位置。 正如Dave指出的那样,这不适用于log4j。 但是,使用logback非常简单。 对于那些有类似要求的人,请在您的资源文件夹中定义一个logback-spring.xml,例如

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <include resource="org/springframework/boot/logging/logback/base.xml"/>
  <logger name="org.springframework.web" level="DEBUG"/>
</configuration>

现在,可以通过服务的外部配置文件中的logging.file属性提供日志文件位置。 可以在@ https://github.com/rixonmathew/rvm_config/blob/master/broker-service.properties中找到样本服务配置文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM