Skip to content

Commit ba7ca76

Browse files
committed
Trying for logging again
1 parent 26f17b4 commit ba7ca76

File tree

4 files changed

+22
-23
lines changed

4 files changed

+22
-23
lines changed

bin/dartdoc.dart

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import 'package:analyzer/src/generated/sdk.dart';
1313
import 'package:args/args.dart';
1414
import 'package:dartdoc/dartdoc.dart';
1515
import 'package:dartdoc/src/logging.dart';
16+
import 'package:logging/logging.dart' as logging;
1617
import 'package:path/path.dart' as path;
1718
import 'package:stack_trace/stack_trace.dart';
1819

@@ -121,29 +122,32 @@ main(List<String> arguments) async {
121122
_printUsageAndExit(parser, exitCode: 1);
122123
}
123124

125+
// By default, get all log output at `progressLevel` or greater.
126+
// This allows us to capture progress events and print `...`.
127+
logging.Logger.root.level = progressLevel;
124128
final stopwatch = new Stopwatch()..start();
125129

126130
// Used to track if we're printing `...` to show progress.
127131
// Allows unified new-line tracking
128132
var writingProgress = false;
129133

130-
logEvents.listen((record) {
131-
if (record.level == LogLevels.progress) {
132-
if (showProgress &&
133-
writingProgress &&
134-
stopwatch.elapsed.inMilliseconds > 500) {
135-
stdout.write('.');
134+
logging.Logger.root.onRecord.listen((record) {
135+
if (record.level == progressLevel) {
136+
if (showProgress && stopwatch.elapsed.inMilliseconds > 250) {
137+
writingProgress = true;
138+
stderr.write('.');
136139
stopwatch.reset();
137140
}
138141
return;
139142
}
140143

144+
stopwatch.reset();
141145
if (writingProgress) {
142146
// print a new line after progress dots...
143147
print('');
144148
writingProgress = false;
145149
}
146-
var message = record.message.toString();
150+
var message = record.message;
147151
assert(message == message.trimRight());
148152
assert(message.isNotEmpty);
149153

lib/src/logging.dart

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,29 +2,23 @@
22
// for details. All rights reserved. Use of this source code is governed by a
33
// BSD-style license that can be found in the LICENSE file.
44

5-
import 'dart:async';
5+
import 'package:logging/logging.dart';
66

7-
enum LogLevels { warning, info, progress }
7+
final _logger = new Logger('dartdoc');
88

9-
final _controller = new StreamController<LogMessage>(sync: true);
10-
11-
Stream<LogMessage> get logEvents => _controller.stream;
12-
13-
class LogMessage {
14-
final LogLevels level;
15-
final Object message;
16-
17-
LogMessage(this.level, this.message);
18-
}
9+
/// A custom [Level] for tracking file writes and verification.
10+
///
11+
/// Has a value of `501` – one more than [Level.FINE].
12+
final Level progressLevel = new Level('progress', 501);
1913

2014
void logWarning(Object message) {
21-
_controller.add(new LogMessage(LogLevels.warning, message));
15+
_logger.log(Level.WARNING, message);
2216
}
2317

2418
void logInfo(Object message) {
25-
_controller.add(new LogMessage(LogLevels.info, message));
19+
_logger.log(Level.INFO, message);
2620
}
2721

2822
void logProgress(Object message) {
29-
_controller.add(new LogMessage(LogLevels.progress, message));
23+
_logger.log(progressLevel, message);
3024
}

pubspec.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -350,4 +350,4 @@ packages:
350350
source: hosted
351351
version: "2.1.13"
352352
sdks:
353-
dart: ">=1.23.0 <=2.0.0-dev.3.0"
353+
dart: ">=1.23.0 <=2.0.0-dev.4.0"

pubspec.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ dependencies:
1414
# We don't use http_parser directly; this dep exists to ensure that we get at
1515
# least version 3.0.3 to work around an issue with 3.0.2.
1616
http_parser: '>=3.0.3 <4.0.0'
17+
logging: ^0.11.3+1
1718
markdown: ^0.11.2
1819
mustache4dart: ^1.1.0
1920
package_config: '>=0.1.5 <2.0.0'

0 commit comments

Comments
 (0)