en_logger 1.2.0 copy "en_logger: ^1.2.0" to clipboard
en_logger: ^1.2.0 copied to clipboard

EnLogger allows you to write log messages according to your needs without restricting you to writing messages to the debug console or other systems.

example/main.dart

import 'dart:convert';

import 'package:en_logger/en_logger.dart';
import 'package:sentry/sentry.dart';

void main(List<String> args) async {
  // a custom handler that under the hood use sentry
  final sentry = await SentryHandler.init();

  // default printer configured
  final printer = PrinterHandler()
    ..configure({
      Severity.notice: const PrinterColor.green(),
    });

  // an enLogger with a default prefix format
  final logger = EnLogger(
    defaultPrefixFormat: const PrefixFormat(
      startFormat: '[',
      endFormat: ']',
    ),
  )
    ..addHandlers([
      sentry,
      printer,
    ])

    // debug log
    ..debug('a debug message')

    // error with data
    ..error(
      'error',
      data: [
        EnLoggerData(
          name: 'response',
          content: jsonEncode('BE data'),
          description: 'serialized BE response',
        ),
      ],
    );

  // logger instance with prefix
  logger.getConfiguredInstance(prefix: 'API Repository')

    // [API Repository] a debug message
    ..debug('a debug message')

    // [Custom prefix] a debug message
    ..error(
      'error',
      prefix: 'Custom prefix',
    );
}

class SentryHandler extends EnLoggerHandler {
  SentryHandler._();

  static Future<SentryHandler> init() async {
    await Sentry.init(
      (options) {
        options.dsn = 'https://example@sentry.io/example';
      },
    );
    return SentryHandler._();
  }

  @override
  void write(
    String message, {
    required Severity severity,
    String? prefix,
    StackTrace? stackTrace,
    List<EnLoggerData>? data,
  }) {
    // just a simple example
    // fine tune your implementation...
    if (severity.atLeastError) {
      Sentry.captureException(message, stackTrace: stackTrace);
      return;
    }
    Sentry.captureMessage(message);
  }
}
3
likes
160
points
23
downloads

Publisher

verified publishermattiapispisa.it

Weekly Downloads

EnLogger allows you to write log messages according to your needs without restricting you to writing messages to the debug console or other systems.

Homepage
Repository (GitHub)
View/report issues

Topics

#logging #severity #debug

Documentation

API reference

License

MIT (license)

More

Packages that depend on en_logger