loadGlobalLibrary static method
void
loadGlobalLibrary({
- EasyLogger? globalLogger,
- List<
VmClass> coreClassList = const [], - List<
VmProxy> coreProxyList = const [], - List<
VmClass> userClassList = const [], - List<
VmProxy> userProxyList = const [], - dynamic nativeValueConverter(
- dynamic value
- String? quickTypeSpeculationMethod(
- dynamic instance
- bool logObjectStackInAndOut = false,
- bool logSlowTypeSpeculation = true,
加载全局作用域
globalLogger
自定义全局日志器coreClassList
dart语言的核心类型,如:dart:async、dart:collection、dart:convert、dart:core、dart:math、dart:typed_data、dart:io、dart:isolate 等库coreProxyList
dart语言的核心全局方法或全局实例userClassList
开发时按需导入的类型userProxyList
开发时按需导入的全局方法或全局实例nativeValueConverter
读取原生数据值转换器,如:在flutter中经常需要quickTypeSpeculationMethod
加速类型推测的函数logObjectStackInAndOut
打印对象栈的变化logSlowTypeSpeculation
打印慢的类型推断
Implementation
static void loadGlobalLibrary({
EasyLogger? globalLogger,
List<VmClass> coreClassList = const [],
List<VmProxy> coreProxyList = const [],
List<VmClass> userClassList = const [],
List<VmProxy> userProxyList = const [],
dynamic Function(dynamic value)? nativeValueConverter,
String? Function(dynamic instance)? quickTypeSpeculationMethod,
bool logObjectStackInAndOut = false,
bool logSlowTypeSpeculation = true,
}) {
_vmwareLogger = globalLogger ?? _vmwareLogger;
VmObject.nativeValueConverter = nativeValueConverter;
VmClass.quickTypeSpeculationMethod = quickTypeSpeculationMethod;
if (logSlowTypeSpeculation) {
VmClass.slowTypeSpeculationReport = (instance, vmclass, cycles, total) {
_vmwareLogger.logFatal(['slowTypeSpeculationReport ======>', instance.runtimeType, '------>', vmclass.identifier, '------>', 'cycles:', cycles, '/', total]);
};
}
if (logObjectStackInAndOut) {
VmRunner.objectStackInAndOutReport = (isIn, isOk, length, members) {
(isOk ? _vmwareLogger.logDebug : _vmwareLogger.logError)(['objectStackInAndOutReport ======>', isIn ? 'in' : 'out', '------>', isOk ? 'ok' : 'error', '------>', length, '--->', members]);
};
}
VmRunner.loadGlobalLibrary(
coreClassList: coreClassList,
coreProxyList: coreProxyList,
userClassList: userClassList,
userProxyList: userProxyList,
);
}