1 logback 配置未读取到 spring context 中的配置
logback-spring.xml 配置
<?xml version="1.0" encoding="UTF-8"?><!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出 --><!-- scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true --><!-- scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。 --><!-- debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 --><configuration scan="true" scanPeriod="10 seconds"><!-- 获取配置中的参数 --><springProperty scope="context" name="appName" source="spring.application.name" defaultValue="defaultAppName"/><springProperty scope="context" name="graylogUrl" source="graylog.url" defaultValue="127.0.0.1"/><springProperty scope="context" name="graylogPort" source="graylog.port" defaultValue="12201"/>...</configuration>
没有读取到 graylog 相关的配置,日志没有收集到 graylog。
解决办法:加入配置:
#将Apollo配置加载提到初始化日志系统之前
apollo.bootstrap.eagerLoad.enabled=true
2 apollo 客户端 接口无法获取没有发布的 namespace 下的 item 值,apollo api 可以
apollo api
package com.hbte.sharp.demo.apollo;import com.ctrip.framework.apollo.openapi.client.ApolloOpenApiClient;import com.ctrip.framework.apollo.openapi.dto.OpenItemDTO;import com.ctrip.framework.apollo.openapi.dto.OpenNamespaceDTO;import org.junit.jupiter.api.Test;/*** 测试apollo** @author Bruce* @date 2021/6/23 17:46*/public class TestApollo {private final String token = "abaf1c08cbff987be3db18cfdf0ba303a1a8d0ed";private final String appId = "test-saas";private final String portalUrl = "http://192.168.0.213:31502/";private final String cluster = "company_01";private final String env = "dev";private ApolloOpenApiClient getClient() {return ApolloOpenApiClient.newBuilder().withPortalUrl(portalUrl).withToken(token).build();}// 可以获取没有发布的 namespace@Testpublic void testNonPublishNamespace() {OpenNamespaceDTO demo = getClient().getNamespace(appId, env, cluster, "demo");System.out.println(demo);}// 可以获取没有发布的 item@Testpublic void testNonPublishItem() {OpenItemDTO item = getClient().getItem(appId, env, cluster, "demo", "name");System.out.println(item);}// 不能获取不存在的 namespace, 404 错误@Testpublic void testNonExistsNamespace() {OpenNamespaceDTO demo = getClient().getNamespace(appId, env, cluster, "demo11");System.out.println(demo);}// 不能获取不存在的 item, 直接是 null,不报错@Testpublic void testNonExistsItem() {OpenItemDTO item = getClient().getItem(appId, env, cluster, "demo", "server.port");System.out.println(item);}}
apollo client:
注意: 属于 'company_01' 集群的实例只会使用 'company_01' 集群(当前页面)的配置,只有当对应namespace在当前集群没有发布过配置时,才会使用default集群的配置。

