Class LogProviderFactory

java.lang.Object
cloud.opencode.base.log.spi.LogProviderFactory

public final class LogProviderFactory extends Object
Log Provider Factory - Provider Discovery and Management 日志提供者工厂 - 提供者发现和管理

This class manages the discovery and selection of log providers using the Java ServiceLoader mechanism.

此类使用 Java ServiceLoader 机制管理日志提供者的发现和选择。

Provider Selection | 提供者选择:

  1. Manually set provider (highest priority) - 手动设置的提供者(最高优先级)
  2. ServiceLoader discovered provider (by priority) - ServiceLoader 发现的提供者(按优先级)
  3. Default fallback provider - 默认回退提供者

Features | 主要功能:

  • ServiceLoader-based provider discovery - 基于 ServiceLoader 的提供者发现
  • Priority-based provider selection - 基于优先级的提供者选择
  • Manual provider override - 手动提供者覆盖
  • Automatic fallback to console provider - 自动回退到控制台提供者

Usage Examples | 使用示例:

// Get current provider
LogProvider provider = LogProviderFactory.getProvider();

// Set custom provider
LogProviderFactory.setProvider(new MyCustomProvider());

// Check available providers
List<String> providers = LogProviderFactory.getAvailableProviders();

Security | 安全性:

  • Thread-safe: Yes (synchronized init + AtomicReference) - 线程安全: 是(同步初始化 + AtomicReference)
  • Null-safe: No (throws on null provider) - 空值安全: 否(null 提供者抛异常)
Since:
JDK 25, opencode-base-log V1.0.0
Author:
Leon Soo www.LeonSoo.com
See Also:
  • Method Details

    • getProvider

      public static LogProvider getProvider()
      Returns the current log provider. 返回当前日志提供者。
      Returns:
      the current provider - 当前提供者
    • getProvider

      public static LogProvider getProvider(String name)
      Returns a provider by name. 按名称返回提供者。
      Parameters:
      name - the provider name - 提供者名称
      Returns:
      the provider - 提供者
      Throws:
      OpenLogException - if provider not found - 如果提供者未找到
    • setProvider

      public static void setProvider(LogProvider provider)
      Sets the current log provider. 设置当前日志提供者。
      Parameters:
      provider - the provider to set - 要设置的提供者
    • registerProvider

      public static void registerProvider(LogProvider provider)
      Registers a log provider. 注册日志提供者。
      Parameters:
      provider - the provider to register - 要注册的提供者
    • getAvailableProviders

      public static List<String> getAvailableProviders()
      Returns a list of available provider names. 返回可用提供者名称列表。
      Returns:
      list of provider names - 提供者名称列表
    • hasProvider

      public static boolean hasProvider(String name)
      Checks if a provider is available. 检查提供者是否可用。
      Parameters:
      name - the provider name - 提供者名称
      Returns:
      true if available - 如果可用返回 true