首页 > 其他分享 >如何将日志配置文件放入到Apollo配置中心并支持热更新

如何将日志配置文件放入到Apollo配置中心并支持热更新

时间:2023-05-25 18:36:52浏览次数:41  
标签:String 配置文件 level int private key 日志 Apollo


  • 增加监听日志文件(LoggerConfiguration.java)
@Service
public class LoggerConfiguration {
  private static final Logger logger = LoggerFactory.getLogger(LoggerConfiguration.class);
  private static final String LOGGER_TAG = "logging.level.";
  
  @Autowired
  private LoggingSystem loggingSystem;
 
  @ApolloConfig
  private Config config;
 
  @ApolloConfigChangeListener
  private void configChangeListter(ConfigChangeEvent changeEvent) {
    refreshLoggingLevels();
  }
 
  @PostConstruct
  private void refreshLoggingLevels() {
    Set<String> keyNames = config.getPropertyNames();
    for (String key : keyNames) {
      if (containsIgnoreCase(key, LOGGER_TAG)) {
        String strLevel = config.getProperty(key, "info");
        LogLevel level = LogLevel.valueOf(strLevel.toUpperCase());
        loggingSystem.setLogLevel(key.replace(LOGGER_TAG, ""), level);
        logger.info("{}:{}", key, strLevel);
      }
    }
  }
 
  private static boolean containsIgnoreCase(String str, String searchStr) {
    if (str == null || searchStr == null) {
      return false;
    }
    int len = searchStr.length();
    int max = str.length() - len;
    for (int i = 0; i <= max; i++) {
      if (str.regionMatches(true, i, searchStr, 0, len)) {
        return true;
      }
    }
    return false;
  }
}
  • 在apollo配置日志等级(loggers.root.level)

如何将日志配置文件放入到Apollo配置中心并支持热更新_java

  • 修改日志级别后实现不重启程序热更新

 

 

标签:String,配置文件,level,int,private,key,日志,Apollo
From: https://blog.51cto.com/chengzheng183/6350653

相关文章

  • express开发api指南--记录日志
    败笔,目前还是我的败笔。没有找到好的方法去记录。现在只能记录请求的记录,api的返回记录没有记录下来。用的morgan中间件。这个在项目创建时已安装。//首先安装轮询文件流插件和时间处理插件cnpminstall--saverotating-file-streamdayjs//修改app.js//引入插件varrfs=......
  • SpringBoot中使用@Scheduled实现定时任务通过读取配置文件动态开关
    场景SpringBoot中定时任务与异步定时任务的实现:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/117083609上面讲的通过@Scheduled注解实现简单定时任务的方式。如果定时任务有多个,不同业务场景下需要动态配置某个定时任务的开关。可以通过@ConditionalOnPropert......
  • 【数据库】日志 (binlog/redo log)
    日志类型:一、binlog原始SQL,应用场景:集群主备同步三种模式区别:rowstatementmixed中间件:canal需要关注点,劣势: 二、redolog ......
  • Grafana+Loki+prometheus日志 监控
    (文章目录)目录结构alertmanageralert_templates*.tmplalertmanager.ymllokialert_rulesloki.yamlpromtailpromtail.yamlprometheusalert_rulesprometheus.ymldocker-compose.ymldocker镜像地址切换(/etc/docker/daemon.json):{ "regis......
  • mongodb日志文件过大
    【1】登录重新生成日志解决(在线无需重启)MongoDB的日志增长的非常快,/var所在的空间立即就占满了,即便换到还有一个磁盘分区保存日志。日志还是增长的非常快。磁盘眼看要告磬。MongoDB在使用一段时候后,发现服务器的存储占到了90%左右,排查内存使用情况后,发现是mongodb的日志文件占用......
  • AI智能视频技术EasyCVR服务正常启动,日志打印实际无进程该如何解决?
    EasyCVR基于云边端协同,可支持海量视频的轻量化接入与汇聚管理。平台既具备传统安防视频监控的能力,比如:视频监控直播、云端录像、云存储、录像检索与回看、智能告警、平台级联、云台控制、语音对讲等,也能接入AI智能分析的能力,包括人脸检测、车辆检测、烟火检测、安全帽检测、区域入......
  • 集中化日志管理平台的应用day04 暂时没用
    4、项⽬实施4.1基本思路从访问源头开始,按链路逐个写⼊⽇志,使⽤不同的⼿段,实现⽤户请求的各个点的⽇志收集4.2前端请求4.2.1概述⽬前项⽬多采⽤动静分离⽅式,静态⻚由nginx处理。那么nginx上的请求⽇志如何收集处理呢?第⼀可以采⽤输出到log⽂件,fifilebeat采集,送⼊kafka。第......
  • django配置文件作用,drf 登录功能,drf认证组件,drf权限组件,drf频率组件
    django配置文件作用:    drf登录功能:view内:from.modelsimportUserInfo,UserTokenfromrest_framework.viewsetsimportViewSetimportuuidfromrest_framework.responseimportResponsefromrest_framework.decoratorsimportactionclassUser......
  • spring-boot配置文件中server.context-path不起作用的解决方案
    背景:server.context-path不起作用简单说springboot项目路径默认是ip:port进入项目,通过在application配置文件添加server.context-path属性,可自定义上下文,如ip:port/server.context-path而springboot2.0之后,上下文的配置改为了server.servlet.context-path。  如果还是不懂可......
  • unity学习日志4(麦扣老师3DRPG项目学习)
    新的APIPhysics.OverLapSphere(位置(Vector3),半径(Float))函数功能:在该位置生成一个球体,返回一个数组(类型为collider),数组存储所有与球体接触和在球体内的拥有碰撞检测的物体链接直达:https://docs.unity.cn/cn/2021.3/ScriptReference/Physics.OverlapSphere.html项目中......