logging 0.11.3+1

Initializing

By default, the logging package does not do anything useful with the log messages. You must configure the logging level and add a handler for the log messages.

Here is a simple logging configuration that logs all messages via print.

Logger.root.level = Level.ALL;
Logger.root.onRecord.listen((LogRecord rec) {
  print('${rec.level.name}: ${rec.time}: ${rec.message}');
});

First, set the root [Level]. All messages at or above the level are sent to the [onRecord] stream.

Then, listen on the [onRecord] stream for [LogRecord] events. The [LogRecord] class has various properties for the message, error, logger name, and more.

Logging messages

Create a [Logger] with a unique name to easily identify the source of the log messages.

final Logger log = new Logger('MyClassName');

Here is an example of logging a debug message and an error:

var future = doSomethingAsync().then((result) {
  log.fine('Got the result: $result');
  processResult(result);
}).catchError((e, stackTrace) => log.severe('Oh noes!', e, stackTrace));

When logging more complex messages, you can pass a closure instead that will be evaluated only if the message is actually logged:

log.fine(() => [1, 2, 3, 4, 5].map((e) => e * 4).join("-"));

See the [Logger] class for the different logging methods.

0.11.3+1

  • Fixed several documentation comments.

0.11.3

  • Added optional LogRecord.object field.

  • Logger.log sets LogRecord.object if the message is not a string or a function that returns a string. So that a handler can access the original object instead of just its toString().

0.11.2

  • Added Logger.detached - a convenience factory to obtain a logger that is not attached to this library's logger hierarchy.

0.11.1+1

  • Include default error with the auto-generated stack traces.

0.11.1

  • Add support for automatically logging the stack trace on error messages. Note this can be expensive, so it is off by default.

0.11.0

  • Revert change in 0.10.0. stackTrace must be an instance of StackTrace. Use the Trace class from the stack_trace package to convert strings.

0.10.0

  • Change type of stackTrace from StackTrace to Object.

0.9.3

  • Added optional LogRecord.zone field.

  • Record current zone (or user specified zone) when creating new LogRecords.

1. Depend on it

Add this to your package's pubspec.yaml file:

dependencies:
  logging: "^0.11.3+1"

2. Install it

You can install packages from the command line:

with pub:


$ pub get

with Flutter:


$ flutter packages get

Alternatively, your editor might support pub get or packages get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:

import 'package:logging/logging.dart';

Platforms

About

Provides APIs for debugging and error logging. This library introduces abstractions similar to those used in other languages, such as the Closure JS Logger and java.util.logging.Logger.

Author

Dart Team

Homepage

github.com/dart-lang/logging

Documentation

www.dartdocs.org/documentation/logging/0.11.3%2B1/

Uploader

dgrove@google.com
jmesserly@google.com
sigmund@google.com
kevmoo@google.com
jakemac@google.com
kustermann@google.com

License

BSD (LICENSE)

Published

Jul 18, 2016