init method

Future<void> init()

初始化日志系统

Implementation

Future<void> init() async {
  if (_isInitialized) return;

  try {
    // 获取日志目录
    final directory = await getApplicationDocumentsDirectory();
    final logDir = Directory('${directory.path}/logs');

    // 创建日志目录
    if (!await logDir.exists()) {
      await logDir.create(recursive: true);
    }

    // 清理过期日志
    await _cleanOldLogs(logDir);

    // 创建新日志文件
    final timestamp = DateTime.now().toIso8601String().split('.')[0].replaceAll(':', '-');
    _logFile = File('${logDir.path}/app_$timestamp.log');
    _logSink = _logFile!.openWrite(mode: FileMode.append);

    // 启动异步写入
    _logSubscription = _logStream.stream.listen((log) async {
      await _writeToFile(log);
    });

    _isInitialized = true;

    // 写入启动日志
    info('Logger initialized successfully');
    info('Log file: ${_logFile!.path}');
    info('Environment: ${kDebugMode ? "DEBUG" : "RELEASE"}');
    info('Min log level: ${_minLevel.name}');
  } catch (e) {
    print('❌ Failed to initialize logger: $e');
  }
}