logger_io 1.0.0 copy "logger_io: ^1.0.0" to clipboard
logger_io: ^1.0.0 copied to clipboard

Simple logger. Does what a logger should do: send your input messages to a series of outputs; and nothing more.

Simple logger. Does what a logger should do: send your input messages to a series of outputs; and nothing more.

Logger io #

[logs]

Usage #

Simple #

final logger = Logger();

logger.d('debug message');
logger.i('info message');
logger.w('warning message');
logger.e('error', stackTrace: StackTrace.current);

Multiple outputs #

final logger = Logger(
  outputs: [
    ConsoleOutput(),
    ExampleCrashlyticsOutput(),
  ],
);

Define your output #

Just implement the output class. For example, below is an example crashlytics output.

class ExampleCrashlyticsOutput implements Output {
  final FirebaseCrashlytics _crashlytics;

  const ExampleCrashlyticsOutput(this._crashlytics);

  @override
  void log({
    required Object? message,
    required Level level,
    required StackTrace? stackTrace,
    required String context,
  }) {
    if (level.value >= Level.error.value) {
      _crashlytics.recordError(message, stackTrace);
    }
  }
}

Change the rendering in the console #

The code of console output is very simple, it just uses a formatter and sends the result string to the console:


class ConsoleOutput implements Output {
  final Formatter _formatter;

  const ConsoleOutput({
    Formatter formatter = const PrettyFormatter(),
  }) : _formatter = formatter;

  @override
  void log({
    required Object? message,
    required Level level,
    required StackTrace? stackTrace,
    required String context,
  }) {
    final formatted = _formatter.format(
      message: message,
      level: level,
      context: context,
      stackTrace: stackTrace,
    );
    print(formatted);
  }
}

If you wish to change the rendering, just build your own formatter.

3
likes
0
points
114
downloads

Publisher

unverified uploader

Weekly Downloads

Simple logger. Does what a logger should do: send your input messages to a series of outputs; and nothing more.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

ansicolor

More

Packages that depend on logger_io