logToTmpFolder function

String logToTmpFolder({
  1. Level level = Level.info,
  2. String subFolder = 'agents_log',
  3. String logFilePrefix = 'agent',
  4. String? logFileTimestamp,
  5. void echo(
    1. String message
    )?,
})

Initializes a temporary log file and returns its path.

Implementation

String logToTmpFolder({
  Level level = Level.info,
  String subFolder = 'agents_log',
  String logFilePrefix = 'agent',
  String? logFileTimestamp,
  void Function(String message)? echo,
}) {
  setupAdkLogger(level: level);
  final String timestamp =
      logFileTimestamp ??
      DateTime.now().toUtc().toIso8601String().replaceAll(RegExp(r'[:\-]'), '');

  final Directory dir = Directory(
    '${Directory.systemTemp.path}${Platform.pathSeparator}$subFolder',
  );
  dir.createSync(recursive: true);

  final String filename = '$logFilePrefix.$timestamp.log';
  final File logFile = File('${dir.path}${Platform.pathSeparator}$filename');
  logFile.writeAsStringSync('');

  (echo ?? print)('Log setup complete: ${logFile.path}');
  tryCreateLatestLogSymlink(dir.path, logFilePrefix, logFile.path, echo: echo);
  return logFile.path;
}