init static method

Logger init({
  1. Level level = Level.ALL,
  2. File? logFile,
  3. bool append = true,
  4. ConsoleLog? consoleLog,
})

Implementation

static Logger init({
  Level level = Level.ALL,
  File? logFile,
  bool append = true,
  ConsoleLog? consoleLog,
}) {
  if (logFile != null) {
    _sink = logFile.openWrite(
      mode: append ? FileMode.writeOnlyAppend : FileMode.writeOnly,
    );

    _sink?.writeln('');
    _sink?.writeln('===========start log===========');
  }

  Logger.root.level = level;
  _sub = Logger.root.onRecord.listen((record) {
    final time = '${record.time}:';
    final msg = '${record.level.name}: '
        '${record.loggerName}: '
        '${record.message}'
        '${record.error != null ? '\n${record.error}' : ''}'
        '${record.stackTrace != null ? '\n${record.stackTrace}' : ''}';

    final line = '$time $msg';

    if (consoleLog == null) {
      stdout.writeln(line);
    } else {
      consoleLog.call(time, msg);
    }

    _sink?.writeln(line);
  });

  return getLogger();
}