【问题标题】:How to output git commit id to all logback logs with Spring Boot?如何使用 Spring Boot 将 git commit id 输出到所有 logback 日志?
【发布时间】:2020-02-08 16:36:27
【问题描述】:

我正在使用 SpringBoot 和 Logback 以及 git commit id maven 插件。如何配置 logback 和 SpringBoot 以在我的日志输出中包含执行器返回的 git commit id?我希望每一行输出都包含生成该输出行的引导应用程序的 git commit id。

【问题讨论】:

    标签: java spring-boot logback logstash-logback-encoder


    【解决方案1】:

    默认情况下,git-commit-id-plugin 在类路径的根目录中创建一个名为 git.properties 的文件,其中包含许多属性,包括 git.commit.id

    您可以在 logback 的配置文件中import these properties,并在 logback 配置中的任何位置访问属性。

    例如,您可以在这样的模式中使用它:

    <configuration>
    
        <!-- Expose the properties from the file generated by git-commit-id-plugin -->
        <property resource="git.properties"/>
    
        <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
            <encoder>
                <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} ${git.commit.id} - %message%n</pattern>
            </encoder>
        </appender>
        ...
    </configuration>
    
    

    或者(因为您使用logstash-logback-encoder 标记了此问题)您可以通过custom fields 或通过pattern provider 将其包含在JSON 字段中,如下所示:

    <configuration>
    
        <!-- Expose the properties from the file generated by git-commit-id-plugin -->
        <property resource="git.properties"/>
    
        <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
            <encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
                <providers>
                    <pattern>
                        <pattern>{"commitId":"${git.commit.id}"}</pattern>
                    </pattern>
                ...
                </providers>
            </encoder>
        </appender>
        ...
    </configuration>
    
    

    【讨论】:

    • 自定义字段${git.commit.id} 仅适用于LoggingEventCompositeJsonEncoder,但不适用于LogstashEncoder。有什么原因吗?
    • 可以将git.commit.id添加到LogstashEncoder,如下所示。 &lt;encoder class="net.logstash.logback.encoder.LogstashEncoder"&gt; &lt;version&gt;${git.commit.id}&lt;/version&gt; &lt;/encoder&gt;
    猜你喜欢
    • 1970-01-01
    • 2020-02-18
    • 1970-01-01
    • 1970-01-01
    • 2019-04-03
    • 2021-06-26
    • 2021-03-15
    • 2021-11-18
    • 2020-06-18
    相关资源
    最近更新 更多