集成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日

相关文章

  • 动态创建script标签实现跨域资源访问的方法介绍

    动态创建script标签实现跨域资源访问是一种常见的前端技巧,可以用于向其他域名的服务器请求数据。以下是实现该方法的具体步骤: 1. 创建一个 script 标签 在 HTML 中动态添加一个 script 标签,并设置其中的 src 属性为需要访问的资源的 URL。例如: <script src="http://example.com/da…

    Java 2023年6月15日
    00
  • Java中判断字符串是否相等的实现

    下面是“Java中判断字符串是否相等的实现”的完整攻略。 一、Java中字符串的比较 Java中字符串比较的基本原理是比较字符串的内容是否相等。由于String类型是一个final类,所以String对象在被创建后就不能再被修改了,因此在Java当中比较两个字符串的时候,不能使用”==”运算符。应该使用equals()方法或equalsIgnoreCase(…

    Java 2023年5月26日
    00
  • java删除数组中的某一个元素的方法

    下面提供详细的“Java删除数组中的某一个元素的方法”的攻略。 1. 使用System.arraycopy方法删除数组中的元素 System.arraycopy方法能够在保持原数组中其他元素未变的前提下,将需要删除的元素移除,从而实现删除数组中某一元素的目的。 下面是该方式的代码示例: public static void main(String[] arg…

    Java 2023年5月26日
    00
  • java中ssj框架的项目搭建流程

    下面就是Java中SSJ框架项目搭建流程的完整攻略: 1. 准备工作 安装Java开发工具包(JDK) 安装集成开发环境(IDE)如IntelliJ IDEA或Eclipse 安装Maven构建工具 2. 新建Maven项目 使用IDE创建新的Maven项目,需要指定Maven坐标,其中包含了项目的各个基本属性,如groupId,artifactId,ver…

    Java 2023年5月20日
    00
  • 使用Springboot实现word在线编辑保存

    使用Spring Boot实现Word在线编辑保存的完整攻略 在Web应用程序中,我们经常需要实现在线编辑和保存Word文档的功能。本文将详细讲解使用Spring Boot实现Word在线编辑保存的完整攻略,并提供两个示例。 1. 添加依赖 在pom.xml文件中添加以下依赖: <dependency> <groupId>org.ap…

    Java 2023年5月15日
    00
  • Java实现操作JSON的便捷工具类完整实例【重写Google的Gson】

    Java实现操作JSON的便捷工具类完整实例【重写Google的Gson】 什么是JSON JSON(JavaScript Object Notation),一种轻量级的数据交换格式。以键值对(key-value pairs)的形式表示信息,易于人阅读和编写,同时也易于机器解析和生成。 为什么需要JSON 如今,网络数据交互已经成为了不可避免的事实。在这个过…

    Java 2023年5月26日
    00
  • 深入解析Java编程中方法的参数传递

    深入解析Java编程中方法的参数传递 在Java编程中,方法是我们进行代码模块化的基本单位,而方法的参数传递是Java编程中比较基础但也比较重要的概念之一。本文将从以下几个方面深入解析Java编程中的方法参数传递。 Java方法参数是按值传递还是按引用传递? 这是一个比较基础的问题。实际上,在Java中,方法参数是按值传递的,而不是传递引用。 所谓“按值传递…

    Java 2023年5月26日
    00
  • 目前最全的python的就业方向

    当谈到Python就业方向时,受众人群极为广泛。无论您是新手,依靠Python技能入行,还是跨专业发展、想要转行为Python工程师,或是已经加入工程师界,希望扩大技能栈,这些适用于每个等级的就业方向,对于Python开发人员来说都是有用的。 以下是目前最全的Python的就业方向的攻略: 1. Web开发 Web开发是目前Python领域中的主要就业方向之…

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