源码

/**

  • 结合apollo动态刷新日志级别
  • @author: zhumh17
  • @date: 11点50分
    */
    @Configuration
    public class LogListenerConfig {

    private static final Logger logger = LoggerFactory.getLogger> (LoggerConfiguration.class);
    /**

    • 监听关键字,当配置中心的依次开头的配置发生变化时,日志级别刷新
      */
      private static final String LOGGER_TAG = “logging.level”;

      private LoggingSystem loggingSystem;
      public LogListenerConfig(LoggingSystem loggingSystem) {
      Assert.notNull(loggingSystem, “LoggingSystem must not be null”);
      this.loggingSystem = loggingSystem;
      }

@ApolloConfigChangeListener(value = "application.yml")
public void configChangeLister(ConfigChangeEvent changeEvent) {
    refreshLoggingLevels(changeEvent);
}

private void refreshLoggingLevels(ConfigChangeEvent changeEvent) {
    ConfigChange configChange = changeEvent.getChange(LOGGER_TAG);
    String strLevel = configChange.getNewValue();
    LogLevel level = LogLevel.valueOf(strLevel.toUpperCase());
    loggingSystem.setLogLevel("com.vx", level);
    logger.info("日志级别变化{}:{}",LOGGER_TAG,strLevel);
}

}

这样只需要在apollo 配置 logging.level 随时可以做配置变更发布都能监听改变日志级别

末尾分享一个特别好用的日志框架,与logback等无缝对接 框架名称:TLog

TLog提供了一种最简单的方式来解决日志追踪问题,它不收集日志,也不需要另外的存储空间,它只是自动的对你的日志进行打标签,自动生成TraceId贯穿你微服务的一整条链路。并且提供上下游节点信息。适合中小型企业以及想快速解决日志追踪问题的公司项目使用。