| Index: packages/logging/README.md
|
| diff --git a/packages/logging/README.md b/packages/logging/README.md
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..de5b8c5eb36755c466a798dcb8ae390668add48d
|
| --- /dev/null
|
| +++ b/packages/logging/README.md
|
| @@ -0,0 +1,49 @@
|
| +## 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`.
|
| +
|
| +```dart
|
| +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.
|
| +
|
| +```dart
|
| +final Logger log = new Logger('MyClassName');
|
| +```
|
| +
|
| +Here is an example of logging a debug message and an error:
|
| +
|
| +```dart
|
| +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:
|
| +
|
| +```dart
|
| +log.fine(() => [1, 2, 3, 4, 5].map((e) => e * 4).join("-"));
|
| +```
|
| +
|
| +See the [Logger] class for the different logging methods.
|
|
|