FLUTTER ECOSYSTEM

hpoul/dart_logging_appenders

印刷、ファイル、リモート(logz、loki)用のログパッケージのアペンダー。

dart_logging_appenders のプロジェクト画像
Stars
25
Forks
31
最終プッシュ(UTC)
2026/02/03
プロジェクト状態
公開中
Herbert Poul GitHub avatar
GITHUB User

Herbert Poul ↗

Freelance app developer @ https://codeux.design/ Check out my latest OSS project at https://authpass.app/

CodeUX.design e.U.Vienna, Austria公式サイト ↗
言語DartShell

技術トピック

このリポジトリが公開するパッケージ

使用している依存関係

依存関係一覧 12 件

元の README

以下は英語原文のスナップショットです。最新版は GitHub をご覧ください。

README を開く / 閉じる

logging_appenders

Pub codecov

Native dart package for logging appenders usable with the logging package.

Color Output Screenshot

It currently includes appenders for:

Performance of Remote Logging Appenders

I am not sure if it is wise to use this in production, but it's great during beta testing with a handful of users so you have all logs available.

It tries to stay reasonable performant by batching log entries and sending them off only every few seconds. If network is down it will retry later. (with an ever increasing interval).

Getting Started

After installing package logging and logging_appenders:

import 'package:logging/logging.dart';
import 'package:logging_appenders/logging_appenders.dart';

final _logger = Logger('main');

void main() {
  PrintAppender.setupLogging();

  // The above code is the same as:
  // Logger.root.level = Level.ALL;
  // PrintAppender()..attachToLogger(Logger.root);

  _logger.fine('Lorem ipsum');
}

Outputs:

$ dart main.dart
2019-08-19 15:36:03.827563 FINE main - Lorem ipsum

Support for Exception chaining

To chain exception you can use the extension method on Exception: causedBy().

int test() {
  try {
    int.parse('a');
  } catch (e, stackTrace) {
    throw Exception('unable to parse').causedBy(e, stackTrace);
  }
}
int main() {
  try {
    test();
  } catch (e, stackTrace) {
    logger.severe('catched Exception', e, stackTrace);
  }
}

Color Formatter

    PrintAppender(formatter: const ColorFormatter())
        ..attachToLogger(Logger.root);

Produces:

Color Output Screenshot

Logging to stderr

When using dart:io (ie. command line apps) it is possible to define which log levels should go to stderr instead of stdout:

PrintAppender.setupLogging(stderrLevel: Level.SEVERE);

Remote Appenders

Appender for logz.io

  final _logzIoApiSender = LogzIoApiAppender(
    // you can find your API key and the required URL from 
    // the logz.io dashboard: https://app-eu.logz.io/#/dashboard/settings/general
    apiToken: 'MY API KEY',
    url: 'https://listener-eu.logz.io:8071/',
    labels: {'app': 'MyApp', 'os': Platform.operatingSystem},
  );
  _logzIoApiSender.attachToLogger(Logger.root);
  
  
  // ...
  If you know that you no longer need the appender. it's good to dispose it:
  _logzIoApiSender.dispose();