blob: c343c594f3e58db342ebf658da7495d53cb29160 [file] [log] [blame]
// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
// 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.
library barback.barback_logger;
import 'package:source_maps/span.dart';
import 'asset_id.dart';
import 'errors.dart';
/// Object used to report warnings and errors encountered while running a
/// transformer.
class BarbackLogger {
/// Logs [entry].
void logEntry(LogEntry entry) {
var buffer = new StringBuffer();
buffer.write("[${entry.level} ${entry.transform}] ");
var message = entry.message;
if (entry.span == null) {
buffer.write(entry.span.getLocationMessage(entry.message));
} else {
buffer.write(message);
}
print(buffer);
}
}
/// The severity of a logged message.
class LogLevel {
static const INFO = const LogLevel("Info");
static const WARNING = const LogLevel("Warning");
static const ERROR = const LogLevel("Error");
final String name;
const LogLevel(this.name);
String toString() => name;
}
/// One message logged during a transform.
class LogEntry {
/// The transform that logged the message.
final TransformInfo transform;
/// The asset that the message is associated with.
final AssetId asset;
final LogLevel level;
final String message;
/// The location that the message pertains to or null if not associated with
/// a source [Span].
final Span span;
LogEntry(this.transform, this.asset, this.level, this.message, this.span);
}