除了在 Spring Boot 应用程序的 bootstrap.properties 中指定之外,有没有办法为 Slueth 提供 Spring 应用程序名称?

Posted

技术标签:

【中文标题】除了在 Spring Boot 应用程序的 bootstrap.properties 中指定之外,有没有办法为 Slueth 提供 Spring 应用程序名称?【英文标题】:Is there a way to provide Slueth the spring application name other than specifying that in bootstrap.properties of Spring boot application? 【发布时间】:2019-05-28 00:46:51 【问题描述】:

根据this 指南,如果使用自定义 logback.xml,则必须在 bootstrap.properties 中指定应用程序名称。我想知道是否有任何方法可以在 logback.xml 中硬编码应用程序名称,而不是使用该属性创建 bootstrap.properties 文件?

我有带有 spring.application.name 属性的 bootstrap.properties 并且 slueth 认识到这一点并且一切都很好。但我想知道是否有任何方法可以指定任何 logback 属性,并且侦探会选择应用程序名称!?

请注意,我使用的是我自己的自定义日志记录格式。以下是我的 logback.xml 文件的样子。

<?xml version="1.0" encoding="UTF-8"?>
 <configuration>
   <include resource="org/springframework/boot/logging/logback/defaults.xml" />
   <property name="CONSOLE_LOG_PATTERN" value="%dateISO8601 
    $LOG_LEVEL_PATTERN:-%5p $PID:-  [%15.15t] %-40.40logger39 : 
    %m%n$LOG_EXCEPTION_CONVERSION_WORD:-%wEx"/>

 <root level="INFO">
    <appender-ref ref="CONSOLE" />
 </root>
</configuration>

【问题讨论】:

【参考方案1】:

&lt;springProperty&gt; 标签允许您从 Spring 环境中公开属性以在 Logback 中使用。

<springProperty scope="context" name="fluentHost" source="myapp.fluentd.host" defaultValue="localhost"/>

【讨论】:

感谢您的提示,但是我已经尝试过了,它仍然没有采用 spring 属性中指定的默认值。以下是我作为弹簧属性的内容,我删除了引导属性,没有运气。 &lt;springProperty scope="context" name="springAppName" source="spring.application.name" defaultValue="router"/&gt;

以上是关于除了在 Spring Boot 应用程序的 bootstrap.properties 中指定之外,有没有办法为 Slueth 提供 Spring 应用程序名称?的主要内容,如果未能解决你的问题,请参考以下文章

spring boo的简单搭建(eclipse+springboot + redis + mysql + thymeleaf)

在 spring-boot 中使用 @EnableWebFluxSecurity 时出错

spring boot集成dubbo

Spring Boot学习

spring boot/cloud 应用监控

如何在 /info 执行器端点中获取 Spring Boot 的版本