Index: pkg/logging/lib/logging.dart |
diff --git a/pkg/logging/lib/logging.dart b/pkg/logging/lib/logging.dart |
index b29f076cb0a225c604c2fd61f32bca07b61c9d5b..3c841dc9100bdec6483065f3d9de4a2a93d94951 100644 |
--- a/pkg/logging/lib/logging.dart |
+++ b/pkg/logging/lib/logging.dart |
@@ -153,10 +153,9 @@ class Logger { |
* [Level.INFO], [Level.WARNING], etc) you can use their specialized methods |
* instead (e.g. [info], [warning], etc). |
*/ |
- // TODO(sigmund): add support for logging exceptions. |
- void log(Level logLevel, String message) { |
+ void log(Level logLevel, String message, [exception]) { |
if (isLoggable(logLevel)) { |
- var record = new LogRecord(logLevel, message, fullName); |
+ var record = new LogRecord(logLevel, message, fullName, exception); |
if (hierarchicalLoggingEnabled) { |
var target = this; |
while (target != null) { |
@@ -170,28 +169,36 @@ class Logger { |
} |
/** Log message at level [Level.FINEST]. */ |
- void finest(String message) => log(Level.FINEST, message); |
+ void finest(String message, [exception]) => |
+ log(Level.FINEST, message, exception); |
/** Log message at level [Level.FINER]. */ |
- void finer(String message) => log(Level.FINER, message); |
+ void finer(String message, [exception]) => |
+ log(Level.FINER, message, exception); |
/** Log message at level [Level.FINE]. */ |
- void fine(String message) => log(Level.FINE, message); |
+ void fine(String message, [exception]) => |
+ log(Level.FINE, message, exception); |
/** Log message at level [Level.CONFIG]. */ |
- void config(String message) => log(Level.CONFIG, message); |
+ void config(String message, [exception]) => |
+ log(Level.CONFIG, message, exception); |
/** Log message at level [Level.INFO]. */ |
- void info(String message) => log(Level.INFO, message); |
+ void info(String message, [exception]) => |
+ log(Level.INFO, message, exception); |
/** Log message at level [Level.WARNING]. */ |
- void warning(String message) => log(Level.WARNING, message); |
+ void warning(String message, [exception]) => |
+ log(Level.WARNING, message, exception); |
/** Log message at level [Level.SEVERE]. */ |
- void severe(String message) => log(Level.SEVERE, message); |
+ void severe(String message, [exception]) => |
+ log(Level.SEVERE, message, exception); |
/** Log message at level [Level.SHOUT]. */ |
- void shout(String message) => log(Level.SHOUT, message); |
+ void shout(String message, [exception]) => |
+ log(Level.SHOUT, message, exception); |
Stream<LogRecord> _getStream() { |
if (hierarchicalLoggingEnabled || parent == null) { |
@@ -308,14 +315,9 @@ class LogRecord { |
static int _nextNumber = 0; |
/** Associated exception (if any) when recording errors messages. */ |
- Exception exception; |
+ var exception; |
- /** Associated exception message (if any) when recording errors messages. */ |
- String exceptionText; |
- |
- LogRecord( |
- this.level, this.message, this.loggerName, |
- [time, this.exception, this.exceptionText]) : |
- this.time = (time == null) ? new DateTime.now() : time, |
- this.sequenceNumber = LogRecord._nextNumber++; |
+ LogRecord(this.level, this.message, this.loggerName, [this.exception]) |
+ : time = new DateTime.now(), |
+ sequenceNumber = LogRecord._nextNumber++; |
} |