getLogger static method

OpenFeatureLogger getLogger(
  1. String name
)

Implementation

static OpenFeatureLogger getLogger(String name) {
  final config = _configs[name] ?? _configs['default'];
  if (config == null) {
    throw StateError('No logger configuration found');
  }

  final logger = DefaultLogger(name);
  hierarchicalLoggingEnabled = true;
  Logger.root.level = config.level;

  if (config.customHandler != null) {
    Logger.root.onRecord.listen((record) {
      final entry = StructuredLogEntry(
        level: record.level,
        message: record.message,
        timestamp: record.time,
        error: record.error?.toString(),
        stackTrace: config.includeStackTraces ? record.stackTrace : null,
        context: {
          'loggerName': record.loggerName,
          'sequenceNumber': record.sequenceNumber,
        },
      );
      config.customHandler!(entry);
    });
  }

  return logger;
}