Spring Cloud Sleuth日志中的应用程序名称不正确

时间:2016-10-24 09:37:39

标签: spring-boot logback tomcat8 spring-cloud spring-cloud-sleuth

我有两个Spring启动应用程序--Application1和Application2。这两个应用程序都使用Spring Cloud Sleuth。两个应用程序都部署在同一个外部tomcat上。以下是配置的详细信息 -   - 提供应用程序名称我为resources文件夹中的每个应用程序添加了单独的bootstrap.yml文件。   - 我还在bootstrap.yml文件中提供了活动配置文件。   - 应用程序名称也添加到应用程序 - $ {profile} .properties文件中。   - 完成后我在classpath中添加了logback-spring.xml。 现在当我用两个应用程序启动tomcat服务器时,我在两个应用程序的Spring Cloud Sleuth日志中获得了第一个应用程序名称。

我正在使用Spring boot 1.4.1和Spring cloud sleuth 1.0.10

编辑: 我在bootstrap.yml中添加了应用程序名称,但我仍面临同样的问题

2 个答案:

答案 0 :(得分:1)

正如我们在docs中写的那样(我想我们写的是它),你必须在提供自定义logback时提供bootstrap yaml中的名称。请查看我们描述如何使用自定义logback的文档。 http://cloud.spring.io/spring-cloud-sleuth/spring-cloud-sleuth.html

答案 1 :(得分:0)

我们在项目中遇到了类似的问题,我们在一个ibm liberty web容器中部署了两个spring boot war。我们通过提供自定义logback-spring.xml来修复它。以下是修复它的配置: 的的logback-spring.xml

<?xml version="1.0" encoding="UTF-8"?>

    

<springProperty scope="context" name="springAppName" source="spring.application.name"/>
<property name="LOG_LEVEL_PATTERN" value="%clr(%5p) %clr([${springAppName},%X{X-B3-TraceId:-},%X{X-B3-SpanId:-},%X{X-Span-Export:-}]){yellow}" />
<!-- You can override this to have a custom pattern -->
<property name="CONSOLE_LOG_PATTERN"
          value="%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>
<appender name="FILE"
          class="ch.qos.logback.core.rolling.RollingFileAppender">
    <encoder>
        <pattern>${CONSOLE_LOG_PATTERN}</pattern>
    </encoder>

    <file>${server.output.dir}logs/myapplication1.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>${server.output.dir}logs/myapplication1%d{yyyy-MM-dd}.log</fileNamePattern>
        <!--<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">-->
            <!--<maxFileSize>1MB</maxFileSize>-->
        <!--</timeBasedFileNamingAndTriggeringPolicy>-->
    </rollingPolicy>
</appender>

<logger name="com.sample.controllers.MyController" level="DEBUG" additivity="false">
    <appender-ref ref="CONSOLE"/>
    <appender-ref ref="FILE"/>
</logger>
<logger name="org.springframework.jdbc.core.StatementCreatorUtils" level="TRACE" additivity="false">
    <appender-ref ref="CONSOLE"/>
    <appender-ref ref="FILE"/>
</logger>

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

确保maven包含在类路径中

 <profiles>
        <profile>
            <id>default</id>
            <activation>
              <activeByDefault>true</activeByDefault>
            </activation>
            <build>
                <resources>
                    <resource>
                        <directory>src/main/resources</directory>
                        <filtering>true</filtering>
                        <includes>
                            <include>**/application.properties</include>
                            <include>**/*.xml</include>
                            <include>**/*.yml</include>
                        </includes>
                    </resource>
                </resources>
            </build>
        </profile>
</profiles>

在src / main / resources / bootstrap.yml中添加以下条目

弹簧:    应用:      name:myapplication1    JMX:      default-domain:myapplication1

在具有不同应用程序名称的两个spring引导应用程序中的每个应用程序中都有此配置