register static method
注册原生崩溃插件
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',
),
);
}
}