tcicMxloggerIsolateEntry function
mxlogger 后台写入 isolate entry。
args: loggerKey, ..., handshakeSendPort
Implementation
@pragma('vm:entry-point')
void tcicMxloggerIsolateEntry(List<dynamic> args) {
if (args.isEmpty || args.last is! SendPort) return;
final String loggerKey =
(args.isNotEmpty && args.first is String) ? (args.first as String) : '';
final SendPort mainSendPort = args.last as SendPort;
final ReceivePort isolatePort = ReceivePort();
mainSendPort.send(isolatePort.sendPort);
isolatePort.listen((dynamic msg) {
if (msg is List && msg.length >= 4) {
final int lvl = msg[0] as int; // 0:debug 1:info
final String text = msg[1] as String;
final String? name = msg[2] as String?;
final String? tag = msg[3] as String?;
// 这里使用 loggerKey + 静态方法写入,避免 isolate 中走 initialize/MethodChannel
mx.MXLogger.logLoggerKey(loggerKey, lvl, text, name: name, tag: tag);
}
});
}