register static method

Future<void> register(
  1. LoggerEngine loggerEngine,
  2. LoggerConfig config
)

注册原生崩溃插件

Implementation

static Future<void> register(LoggerEngine loggerEngine, LoggerConfig config) async {
  if (_isRegistered) return;

  // 检查是否启用原生崩溃检测
  if (!config.enableNativeCrashDetection) {
    if (kDebugMode) {
      debugPrint('📋 Native crash detection disabled in config');
    }
    return;
  }

  try {
    // 获取当前会话ID
    final sessionId = loggerEngine.currentSessionId;

    // 初始化原生崩溃服务
    await NativeCrashService.instance.initialize(loggerEngine, sessionId);

    _isRegistered = true;

    if (kDebugMode) {
      debugPrint('✅ NativeCrashPlugin registered successfully');
      debugPrint('📱 Platform: ${Platform.operatingSystem}');
    }

    // 记录插件注册事件
    loggerEngine.addEvent(
      SystemEvent(
        eventName: 'native_crash_plugin_registered',
        sessionId: sessionId,
        systemInfo: {
          'platform': Platform.operatingSystem,
          'version': Platform.operatingSystemVersion,
          'isDebug': kDebugMode,
        },
        level: 'info',
        source: 'native_crash_plugin',
      ),
    );
  } catch (e) {
    if (kDebugMode) {
      debugPrint('❌ Failed to register NativeCrashPlugin: $e');
    }

    // 记录注册失败事件
    loggerEngine.addEvent(
      SystemEvent(
        eventName: 'native_crash_plugin_registration_failed',
        sessionId: loggerEngine.currentSessionId,
        systemInfo: {
          'error': e.toString(),
          'platform': Platform.operatingSystem,
        },
        level: 'error',
        source: 'native_crash_plugin',
      ),
    );
  }
}