Skip to content

Commit

Permalink
add error and stack trace info to BuilderTransformer logs
Browse files Browse the repository at this point in the history
  • Loading branch information
jakemac53 committed Jun 3, 2016
1 parent 5818cfb commit 764d8d6
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 9 deletions.
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
# Changelog

## 0.3.0+4
- Add error and stack trace to log nessages from the BuilderTransformer.

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

Expand Down
20 changes: 16 additions & 4 deletions lib/src/transformer/transformer.dart
Original file line number Diff line number Diff line change
Expand Up @@ -76,13 +76,13 @@ abstract class BuilderTransformer implements Transformer, DeclaringTransformer {
Logger.root.level = Level.ALL;
var logSubscription = buildStep.logger.onRecord.listen((LogRecord log) {
if (log.level <= Level.CONFIG) {
transform.logger.fine(log.message);
transform.logger.fine(_logRecordToMessage(log));
} else if (log.level <= Level.INFO) {
transform.logger.info(log.message);
transform.logger.info(_logRecordToMessage(log));
} else if (log.level <= Level.WARNING) {
transform.logger.warning(log.message);
transform.logger.warning(_logRecordToMessage(log));
} else {
transform.logger.error(log.message);
transform.logger.error(_logRecordToMessage(log));
}
});
await builder.build(buildStep);
Expand All @@ -91,6 +91,18 @@ abstract class BuilderTransformer implements Transformer, DeclaringTransformer {
}));
}

String _logRecordToMessage(LogRecord log) {
var buffer = new StringBuffer();
buffer.write(log.message);
if (log.error != null) {
buffer.write('\nError: ${log.error}');
}
if (log.stackTrace != null) {
buffer.write('\nStack Trace:\n${log.stackTrace}');
}
return buffer.toString();
}

@override
void declareOutputs(DeclaringTransform transform) {
for (var outputId in _expectedOutputs(transform.primaryId, builders)) {
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+3
version: 0.3.0+4
description: A build system for Dart.
author: Dart Team <misc@dartlang.org>
homepage: https://github.com/dart-lang/build
Expand Down
14 changes: 10 additions & 4 deletions test/transformer/transformer_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -123,8 +123,10 @@ void main() {
], {
'a|web/a.txt': 'hello',
}, {}, messages: [
'warning: Warning!',
'error: Error!',
allOf(startsWith('warning: Warning!'), contains('SomeError'),
contains('LoggingCopyBuilder.build')),
allOf(startsWith('error: Error!'), contains('SomeError'),
contains('LoggingCopyBuilder.build')),
]);
}

Expand All @@ -134,8 +136,12 @@ class LoggingCopyBuilder extends CopyBuilder {
@override
Future build(BuildStep buildStep) async {
await super.build(buildStep);
buildStep.logger.warning('Warning!');
buildStep.logger.severe('Error!');
try {
throw 'SomeError';
} catch (e, s) {
buildStep.logger.warning('Warning!', e, s);
buildStep.logger.severe('Error!', e, s);
}
}
}

Expand Down

0 comments on commit 764d8d6

Please sign in to comment.