Skip to content

Commit 2014a13

Browse files
committed
Fix BuilderTransformer to forward logs to the TransformLogger
1 parent 0cf96e4 commit 2014a13

File tree

4 files changed

+44
-2
lines changed

4 files changed

+44
-2
lines changed

CHANGELOG.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
# Changelog
22

3+
## 0.3.0+3
4+
- Fixed BuilderTransformer so that logs are passed on to the TransformLogger.
5+
36
## 0.3.0+2
47
- Enable serving files outside the server root by default (enables serving
5-
files from other packages).
8+
files from other packages).
69

710
## 0.3.0+1
811
- Fix an AssetGraph bug where generated nodes might be created as non-generated

lib/src/transformer/transformer.dart

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import 'dart:convert';
66

77
import 'package:barback/barback.dart' as barback show AssetId;
88
import 'package:barback/barback.dart' hide Asset, AssetId;
9+
import 'package:logging/logging.dart';
910

1011
import '../asset/asset.dart' as build;
1112
import '../asset/id.dart' as build;
@@ -72,8 +73,21 @@ abstract class BuilderTransformer implements Transformer, DeclaringTransformer {
7273
// Run the build step.
7374
var buildStep =
7475
new BuildStepImpl(input, expected, reader, writer, input.id.package);
76+
Logger.root.level = Level.ALL;
77+
var logSubscription = buildStep.logger.onRecord.listen((LogRecord log) {
78+
if (log.level <= Level.CONFIG) {
79+
transform.logger.fine(log.message);
80+
} else if (log.level <= Level.INFO) {
81+
transform.logger.info(log.message);
82+
} else if (log.level <= Level.WARNING) {
83+
transform.logger.warning(log.message);
84+
} else {
85+
transform.logger.error(log.message);
86+
}
87+
});
7588
await builder.build(buildStep);
7689
await buildStep.complete();
90+
await logSubscription.cancel();
7791
}));
7892
}
7993

pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name: build
2-
version: 0.3.0+2
2+
version: 0.3.0+3
33
description: A build system for Dart.
44
author: Dart Team <[email protected]>
55
homepage: https://github.com/dart-lang/build

test/transformer/transformer_test.dart

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
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
@TestOn('vm')
5+
import 'dart:async';
6+
7+
import 'package:build/build.dart';
58
import 'package:test/test.dart';
69
import 'package:transformer_test/utils.dart';
710

@@ -112,6 +115,28 @@ void main() {
112115
_fileExistsError("CopyBuilder", ["a|web/a.txt.copy"]),
113116
],
114117
expectBarbackErrors: true);
118+
119+
testPhases('loggers log errors', [
120+
[
121+
new GenericBuilderTransformer([new LoggingCopyBuilder()])
122+
],
123+
], {
124+
'a|web/a.txt': 'hello',
125+
}, {}, messages: [
126+
'warning: Warning!',
127+
'error: Error!',
128+
]);
129+
}
130+
131+
class LoggingCopyBuilder extends CopyBuilder {
132+
LoggingCopyBuilder() : super();
133+
134+
@override
135+
Future build(BuildStep buildStep) async {
136+
await super.build(buildStep);
137+
buildStep.logger.warning('Warning!');
138+
buildStep.logger.severe('Error!');
139+
}
115140
}
116141

117142
String _fileExistsError(String builder, List<String> files) {

0 commit comments

Comments
 (0)