Skip to content

Commit

Permalink
Fix BuilderTransformer to forward logs to the TransformLogger
Browse files Browse the repository at this point in the history
  • Loading branch information
jakemac53 committed May 31, 2016
1 parent 0cf96e4 commit 2014a13
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 2 deletions.
5 changes: 4 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
# Changelog

## 0.3.0+3
- Fixed BuilderTransformer so that logs are passed on to the TransformLogger.

## 0.3.0+2
- Enable serving files outside the server root by default (enables serving
files from other packages).
files from other packages).

## 0.3.0+1
- Fix an AssetGraph bug where generated nodes might be created as non-generated
Expand Down
14 changes: 14 additions & 0 deletions lib/src/transformer/transformer.dart
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import 'dart:convert';

import 'package:barback/barback.dart' as barback show AssetId;
import 'package:barback/barback.dart' hide Asset, AssetId;
import 'package:logging/logging.dart';

import '../asset/asset.dart' as build;
import '../asset/id.dart' as build;
Expand Down Expand Up @@ -72,8 +73,21 @@ abstract class BuilderTransformer implements Transformer, DeclaringTransformer {
// Run the build step.
var buildStep =
new BuildStepImpl(input, expected, reader, writer, input.id.package);
Logger.root.level = Level.ALL;
var logSubscription = buildStep.logger.onRecord.listen((LogRecord log) {
if (log.level <= Level.CONFIG) {
transform.logger.fine(log.message);
} else if (log.level <= Level.INFO) {
transform.logger.info(log.message);
} else if (log.level <= Level.WARNING) {
transform.logger.warning(log.message);
} else {
transform.logger.error(log.message);
}
});
await builder.build(buildStep);
await buildStep.complete();
await logSubscription.cancel();
}));
}

Expand Down
2 changes: 1 addition & 1 deletion pubspec.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: build
version: 0.3.0+2
version: 0.3.0+3
description: A build system for Dart.
author: Dart Team <[email protected]>
homepage: https://github.com/dart-lang/build
Expand Down
25 changes: 25 additions & 0 deletions test/transformer/transformer_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
@TestOn('vm')
import 'dart:async';

import 'package:build/build.dart';
import 'package:test/test.dart';
import 'package:transformer_test/utils.dart';

Expand Down Expand Up @@ -112,6 +115,28 @@ void main() {
_fileExistsError("CopyBuilder", ["a|web/a.txt.copy"]),
],
expectBarbackErrors: true);

testPhases('loggers log errors', [
[
new GenericBuilderTransformer([new LoggingCopyBuilder()])
],
], {
'a|web/a.txt': 'hello',
}, {}, messages: [
'warning: Warning!',
'error: Error!',
]);
}

class LoggingCopyBuilder extends CopyBuilder {
LoggingCopyBuilder() : super();

@override
Future build(BuildStep buildStep) async {
await super.build(buildStep);
buildStep.logger.warning('Warning!');
buildStep.logger.severe('Error!');
}
}

String _fileExistsError(String builder, List<String> files) {
Expand Down

0 comments on commit 2014a13

Please sign in to comment.