define4<T1, T2, T3, T4> static method

void Function(Logger, T1, T2, T3, T4, Exception?) define4<T1, T2, T3, T4>(
  1. LogLevel logLevel,
  2. EventId eventId,
  3. String formatString, {
  4. LogDefineOptions? options,
})

Defines a log message with four parameters.

Implementation

static void Function(Logger, T1, T2, T3, T4, Exception?)
    define4<T1, T2, T3, T4>(
  LogLevel logLevel,
  EventId eventId,
  String formatString, {
  LogDefineOptions? options,
}) {
  final skipCheck = options?.skipEnabledCheck ?? false;

  return (logger, arg1, arg2, arg3, arg4, exception) {
    if (skipCheck || logger.isEnabled(logLevel)) {
      logger.log(
        logLevel: logLevel,
        eventId: eventId,
        state: (arg1, arg2, arg3, arg4),
        error: exception,
        formatter: (state, error) => formatString
            .replaceAll('{0}', state.$1.toString())
            .replaceAll('{1}', state.$2.toString())
            .replaceAll('{2}', state.$3.toString())
            .replaceAll('{3}', state.$4.toString()),
      );
    }
  };
}