Chromium Code Reviews| Index: pkg/code_transformers/lib/messages/build_logger.dart |
| diff --git a/pkg/code_transformers/lib/messages/build_logger.dart b/pkg/code_transformers/lib/messages/build_logger.dart |
| index e1d7e78a58a2b8c53f206b497a180ef23b0fbad0..ac45a545695664a4e14d1513ba5a27ed052c36dd 100644 |
| --- a/pkg/code_transformers/lib/messages/build_logger.dart |
| +++ b/pkg/code_transformers/lib/messages/build_logger.dart |
| @@ -40,13 +40,19 @@ class BuildLogger implements TransformLogger { |
| /// underlying logger in `_transform.logger`. |
| final bool convertErrorsToWarnings; |
| - BuildLogger(this._transform, {this.convertErrorsToWarnings: false}); |
| + /// Uri prefix to link for additional details. If set, messages logged through |
| + /// this logger will contain an additional sentence, telling users to find |
| + /// more details at `$detailsUri#packagename_id`. |
| + final String detailsUri; |
| + |
| + BuildLogger(this._transform, {this.convertErrorsToWarnings: false, |
| + this.detailsUri: 'http://goo.gl/5HPeuP'}); |
|
jakemac
2014/09/05 22:19:29
Since this isn't part of the polymer package, we p
|
| /// Records a message at the fine level. If [msg] is a [Message] it is |
| /// recorded directly, otherwise it is first converted to a [String]. |
| void fine(msg, {AssetId asset, SourceSpan span}) { |
| msg = msg is Message ? msg : new Message.unknown('$msg'); |
| - _transform.logger.fine(msg.snippet, asset: asset, span: span); |
| + _transform.logger.fine(_snippet(msg), asset: asset, span: span); |
| _logs.add(new BuildLogEntry(msg, span, LogLevel.FINE.name)); |
| } |
| @@ -54,7 +60,7 @@ class BuildLogger implements TransformLogger { |
| /// recorded directly, otherwise it is first converted to a [String]. |
| void info(msg, {AssetId asset, SourceSpan span}) { |
| msg = msg is Message ? msg : new Message.unknown('$msg'); |
| - _transform.logger.info(msg.snippet, asset: asset, span: span); |
| + _transform.logger.info(_snippet(msg), asset: asset, span: span); |
| _logs.add(new BuildLogEntry(msg, span, LogLevel.INFO.name)); |
| } |
| @@ -62,7 +68,7 @@ class BuildLogger implements TransformLogger { |
| /// directly, otherwise it is first converted to a [String]. |
| void warning(msg, {AssetId asset, SourceSpan span}) { |
| msg = msg is Message ? msg : new Message.unknown('$msg'); |
| - _transform.logger.warning(msg.snippet, asset: asset, span: span); |
| + _transform.logger.warning(_snippet(msg), asset: asset, span: span); |
| _logs.add(new BuildLogEntry(msg, span, LogLevel.WARNING.name)); |
| } |
| @@ -71,13 +77,21 @@ class BuildLogger implements TransformLogger { |
| void error(msg, {AssetId asset, SourceSpan span}) { |
| msg = msg is Message ? msg : new Message.unknown('$msg'); |
| if (convertErrorsToWarnings) { |
| - _transform.logger.warning(msg.snippet, asset: asset, span: span); |
| + _transform.logger.warning(_snippet(msg), asset: asset, span: span); |
| } else { |
| - _transform.logger.error(msg.snippet, asset: asset, span: span); |
| + _transform.logger.error(_snippet(msg), asset: asset, span: span); |
| } |
| _logs.add(new BuildLogEntry(msg, span, LogLevel.ERROR.name)); |
| } |
| + String _snippet(Message msg) { |
| + var s = msg.snippet; |
| + if (detailsUri == null) return s; |
| + var dot = s.endsWith('.') ? '' : '.'; |
| + var hashTag = '${msg.id.package}_${msg.id.id}'; |
| + return '$s$dot See $detailsUri#$hashTag for details.'; |
| + } |
| + |
| /// Outputs the log data to a JSON serialized file. |
| Future writeOutput() { |
| return _getNextLogAssetPath().then((path) { |