Index: pkg/barback/lib/src/package_graph.dart |
diff --git a/pkg/barback/lib/src/package_graph.dart b/pkg/barback/lib/src/package_graph.dart |
index dcc3d7f5bb1a9eb9bfc8215929e5e728500dc1d9..95ecbb1546dc91107157fed512d9cc0d979f18d1 100644 |
--- a/pkg/barback/lib/src/package_graph.dart |
+++ b/pkg/barback/lib/src/package_graph.dart |
@@ -10,9 +10,9 @@ import 'asset_cascade.dart'; |
import 'asset_id.dart'; |
import 'asset_node.dart'; |
import 'asset_set.dart'; |
-import 'barback_logger.dart'; |
import 'build_result.dart'; |
import 'errors.dart'; |
+import 'log.dart'; |
import 'package_provider.dart'; |
import 'pool.dart'; |
import 'transformer.dart'; |
@@ -26,10 +26,6 @@ class PackageGraph { |
/// The provider that exposes asset and package information. |
final PackageProvider provider; |
- /// The logger used to report transformer log entries. If this is null, then |
- /// [_defaultLogger] will be used instead. |
- final BarbackLogger _logger; |
- |
/// The [AssetCascade] for each package. |
final _cascades = <String, AssetCascade>{}; |
@@ -60,6 +56,10 @@ class PackageGraph { |
Stream<BarbackException> get errors => _errors; |
Stream<BarbackException> _errors; |
+ /// The stream of [LogEntry] objects used to report transformer log entries. |
+ Stream<LogEntry> get log => _logController.stream; |
+ final _logController = new StreamController<LogEntry>.broadcast(); |
+ |
/// The most recent error emitted from a cascade's result stream. |
/// |
/// This is used to pipe an unexpected error from a build to the resulting |
@@ -75,8 +75,7 @@ class PackageGraph { |
/// Creates a new [PackageGraph] that will transform assets in all packages |
/// made available by [provider]. |
- PackageGraph(this.provider, {BarbackLogger logger}) |
- : _logger = logger != null ? logger : new BarbackLogger() { |
+ PackageGraph(this.provider) { |
for (var package in provider.packages) { |
var cascade = new AssetCascade(this, package); |
// The initial result for each cascade is "success" since the cascade |
@@ -87,7 +86,23 @@ class PackageGraph { |
_cascadeResults[package] = null; |
}); |
- cascade.onLog.listen(_logger.logEntry); |
+ cascade.onLog.listen((entry) { |
+ if (_logController.hasListener) { |
+ _logController.add(entry); |
+ } else { |
+ // No listeners, so just print entry. |
+ var buffer = new StringBuffer(); |
+ buffer.write("[${entry.level} ${entry.transform}] "); |
+ |
+ if (entry.span != null) { |
+ buffer.write(entry.span.getLocationMessage(entry.message)); |
+ } else { |
+ buffer.write(entry.message); |
+ } |
+ |
+ print(buffer); |
+ } |
+ }); |
cascade.results.listen((result) { |
_cascadeResults[cascade.package] = result; |