集成apollo动态日志取缔logback-spring.xml配置

当我们使用Spring Boot构建应用程序时,Logback是默认的日志框架。然而,有些使用者更喜欢使用apollo,所以这里介绍如何在集成apollo后使用其动态日志管理功能代替Logback。

1. 添加apollo客户端依赖

首先要将如下依赖添加到应用程序的pom.xml文件中:

<dependency>
    <groupId>com.ctrip.framework.apollo</groupId>
    <artifactId>apollo-client</artifactId>
    <version>${latestReleaseVersion}</version>
</dependency>

这里的${latestReleaseVersion}需要替换成最新的Apollo Client版本号。

2. 添加配置文件

在resources目录下添加apollo的配置文件,比如取名为application-apollo.yaml。其中只需要添加一些基本的apollo配置:

apollo:
  bootstrap:
    enabled: true
    namespaces: application
  configServiceUrl: http://apollo-config-service-url:port/
  appId: ${your-app-id}
  cluster: ${your-cluster}
  //这里注意下面的ignore则表示不需要动态改变的logging
  //如果你的logback配置也使用了apollo,那么这里也可以设置为logback.xml
  //但是建议只选择其中一种方式
  ignore:
    - "logging.config"

3.修改代码

在Spring Boot启动类上加上@EnableApolloConfig注解来读取Apollo的配置:

@EnableApolloConfig
@SpringBootApplication
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

4.在Apollo上创建日志配置

登录到Apollo控制台,找到你的项目,然后在左侧找到"生产环境"菜单,点击后在页面中找到日志配置。

接下来创建一个新的日志配置并设置名称(比如my-logging)和内容。如下所示:

logging.level.com.example=DEBUG

这将为您的应用程序中的com.example类开启调试日志级别。

5. 重启应用程序

现在重启您的应用程序,如果一切正常,您将看到以下日志:

c.c.a.c.l.LoggingConfigWorker - Loading Logging config from Apollo Config Service
ch.qos.logback.classic.LoggerContext - Will scan for changes in [/root/.logback/config, /root/demo-service/target/classes]   
ch.qos.logback.classic.LoggerContext - Will scan for changes in [/root/.logback/config, /root/demo-service/target/classes]   
ch.qos.logback.classic.jmx.JMXConfigurator - JMX console is disabled  
c.c.a.c.l.LoggingConfigListener - Logging config loaded from Apollo Config Service: 
logging.level.com.example=DEBUG

这表明你的程序开始从Apollo中加载日志配置并取代了原来由Logback管理的配置。

示例一:控制台日志输出级别

假设你需要在控制台中动态更改日志的输出级别,你可以使用如下配置:

  1. application-apollo.yaml文件中添加配置:
logging:
  level:
    root: info
  1. 在Apollo图形界面上创建logging_level_root配置项,并将其改为debug
root.logging.level=debug

当控制台输出以下“hello world!”时,它将会是debug级别:

LOGGER.debug("hello world!");

示例二:更改日志文件名称

假设你希望动态更改日志文件名称,你可以按照以下步骤操作:

  1. 添加如下配置到application-apollo.yaml文件中:
logging.file.name: /var/log/mylog.log
  1. 在Apollo图形界面上创建logging_file_name配置项,并将其改为/var/log/newlog.log
logging.file.name=/var/log/newlog.log

此时,日志将会输出到/var/log/newlog.log文件,而不是原本指定的/var/log/mylog.log

以上就是关于“集成apollo动态日志取缔logback-spring.xml配置”的完整攻略,希望对您有所帮助!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:集成apollo动态日志取缔logback-spring.xml配置 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • java查找文件夹下最新生成的文件的方法

    要查找一个文件夹下最新生成的文件,可以使用Java中的File类和Stream API。以下是步骤列表: 用File类打开文件夹(也可以是目录): File folder = new File("path/to/folder"); 获取文件夹下所有的文件, File[] files = folder.listFiles(); 按照文件名进…

    Java 2023年5月20日
    00
  • JavaScript实现翻页功能(附效果图)

    下面是详细的“JavaScript实现翻页功能(附效果图)”完整攻略。 1. 准备工作 在实现之前,需要准备以下内容: HTML 页面中的内容需要做好分页。 在页面中添加用来显示翻页效果的 HTML 元素。 确定每页需要显示的数据数量。 翻页元素的样式。 2. 翻页效果实现步骤 接下来,我们开始实现 JavaScript 翻页功能。 2.1. 获取数据 首先…

    Java 2023年6月15日
    00
  • Java集成测试的作用是什么?

    Java集成测试是指在代码整合完成以后,进行的针对整个软件系统进行的测试过程。该过程旨在验证整个软件系统的稳定性与正确性。Java集成测试的作用主要有以下几个方面: 验证软件系统的各个组件之间的相互作用是否符合预期。 检查集成后系统是否具有预期的性能和可靠性。 探测和解决系统中可能存在的集成问题。 对于Java集成测试,我们可以按照以下步骤进行: 确定集成测…

    Java 2023年5月11日
    00
  • Java面试题冲刺第八天–Spring框架2

    Java面试题冲刺第八天–Spring框架2 本文将详细讲解Java面试题冲刺第八天–Spring框架2的完整攻略,包括Spring框架的概述、Spring框架的核心模块、Spring框架的优点、Spring框架的示例说明等。 Spring框架的概述 Spring框架是一个轻量级的Java开发框架,它提供了一系列的工具和框架,用于简化Java开发过程中的…

    Java 2023年5月18日
    00
  • slf4j使用log4j的配置参数方式

    slf4j是一个Java日志框架的抽象层,它可以与多种具体的日志框架进行绑定。log4j是其中一种在Java程序中常见的日志框架,可以与slf4j进行绑定。通过使用slf4j和log4j,可以在代码中进行方便的日志记录和管理。 以下是使用log4j作为实际日志框架的示例: 添加依赖 首先需要在项目的pom文件中添加slf4j和log4j的依赖。 <de…

    Java 2023年5月20日
    00
  • JDK19新特性使用实例详解

    JDK19新特性使用实例详解 本文将详细讲解JDK19新特性的使用实例,并给出两条具体的示例说明。 1. Lambda表达式 Lambda表达式是JDK8引入的一个重要特性,它可以使代码更加简洁、易读。我们来看一个实例: // 普通的排序方法 Collections.sort(list, new Comparator<String>() { @O…

    Java 2023年5月26日
    00
  • 常见的Java加密算法有哪些?

    常见的Java加密算法有以下几种:对称加密算法、非对称加密算法和散列算法。 对称加密算法 对称加密算法是指发送方和接收方使用相同的密钥对数据进行加密和解密。常见的对称加密算法有DES、3DES、AES、Blowfish等。 以AES算法为例,以下为使用步骤: 1)生成密钥 SecretKey secretKey = KeyGenerator.getInsta…

    Java 2023年5月11日
    00
  • Mysql json类型字段Java+Mybatis数据字典功能的实践方式

    Mysql json类型字段Java+Mybatis数据字典功能的实践方式概述 Mysql支持json类型数据,在应用程序开发中,经常需要将json类型数据存储到数据库中。考虑到数据字典的实现方式,可以将字典数据以json的方式存储到Mysql数据库表中,Java+Mybatis数据字典功能是通过将json类型的数据解析出来,然后在应用程序中使用这些数据。 …

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部