dartfmt --fix, update min SDK to 2.0.0
diff --git a/lib/logging.dart b/lib/logging.dart
index e278d76..f69ed69 100644
--- a/lib/logging.dart
+++ b/lib/logging.dart
@@ -52,7 +52,7 @@
   /// Singleton constructor. Calling `new Logger(name)` will return the same
   /// actual instance whenever it is called with the same string name.
   factory Logger(String name) {
-    return _loggers.putIfAbsent(name, () => new Logger._named(name));
+    return _loggers.putIfAbsent(name, () => Logger._named(name));
   }
 
   /// Creates a new detached [Logger].
@@ -64,30 +64,30 @@
   /// It can be useful when you just need a local short-living logger,
   /// which you'd like to be garbage-collected later.
   factory Logger.detached(String name) {
-    return new Logger._internal(name, null, new Map<String, Logger>());
+    return Logger._internal(name, null, Map<String, Logger>());
   }
 
   factory Logger._named(String name) {
     if (name.startsWith('.')) {
-      throw new ArgumentError("name shouldn't start with a '.'");
+      throw ArgumentError("name shouldn't start with a '.'");
     }
     // Split hierarchical names (separated with '.').
     int dot = name.lastIndexOf('.');
     Logger parent;
     String thisName;
     if (dot == -1) {
-      if (name != '') parent = new Logger('');
+      if (name != '') parent = Logger('');
       thisName = name;
     } else {
-      parent = new Logger(name.substring(0, dot));
+      parent = Logger(name.substring(0, dot));
       thisName = name.substring(dot + 1);
     }
-    return new Logger._internal(thisName, parent, new Map<String, Logger>());
+    return Logger._internal(thisName, parent, Map<String, Logger>());
   }
 
   Logger._internal(this.name, this.parent, Map<String, Logger> children)
       : this._children = children,
-        this.children = new UnmodifiableMapView(children) {
+        this.children = UnmodifiableMapView(children) {
     if (parent != null) parent._children[name] = this;
   }
 
@@ -107,7 +107,7 @@
       _level = value;
     } else {
       if (parent != null) {
-        throw new UnsupportedError(
+        throw UnsupportedError(
             'Please set "hierarchicalLoggingEnabled" to true if you want to '
             'change the level on a non-root logger.');
       }
@@ -177,8 +177,8 @@
       }
       if (zone == null) zone = Zone.current;
 
-      var record = new LogRecord(
-          logLevel, msg, fullName, error, stackTrace, zone, object);
+      var record =
+          LogRecord(logLevel, msg, fullName, error, stackTrace, zone, object);
 
       if (hierarchicalLoggingEnabled) {
         var target = this;
@@ -227,7 +227,7 @@
   Stream<LogRecord> _getStream() {
     if (hierarchicalLoggingEnabled || parent == null) {
       if (_controller == null) {
-        _controller = new StreamController<LogRecord>.broadcast(sync: true);
+        _controller = StreamController<LogRecord>.broadcast(sync: true);
       }
       return _controller.stream;
     } else {
@@ -242,7 +242,7 @@
   }
 
   /// Top-level root [Logger].
-  static final Logger root = new Logger('');
+  static final Logger root = Logger('');
 
   /// All [Logger]s in the system.
   static final Map<String, Logger> _loggers = <String, Logger>{};
@@ -271,36 +271,36 @@
   const Level(this.name, this.value);
 
   /// Special key to turn on logging for all levels ([value] = 0).
-  static const Level ALL = const Level('ALL', 0);
+  static const Level ALL = Level('ALL', 0);
 
   /// Special key to turn off all logging ([value] = 2000).
-  static const Level OFF = const Level('OFF', 2000);
+  static const Level OFF = Level('OFF', 2000);
 
   /// Key for highly detailed tracing ([value] = 300).
-  static const Level FINEST = const Level('FINEST', 300);
+  static const Level FINEST = Level('FINEST', 300);
 
   /// Key for fairly detailed tracing ([value] = 400).
-  static const Level FINER = const Level('FINER', 400);
+  static const Level FINER = Level('FINER', 400);
 
   /// Key for tracing information ([value] = 500).
-  static const Level FINE = const Level('FINE', 500);
+  static const Level FINE = Level('FINE', 500);
 
   /// Key for static configuration messages ([value] = 700).
-  static const Level CONFIG = const Level('CONFIG', 700);
+  static const Level CONFIG = Level('CONFIG', 700);
 
   /// Key for informational messages ([value] = 800).
-  static const Level INFO = const Level('INFO', 800);
+  static const Level INFO = Level('INFO', 800);
 
   /// Key for potential problems ([value] = 900).
-  static const Level WARNING = const Level('WARNING', 900);
+  static const Level WARNING = Level('WARNING', 900);
 
   /// Key for serious failures ([value] = 1000).
-  static const Level SEVERE = const Level('SEVERE', 1000);
+  static const Level SEVERE = Level('SEVERE', 1000);
 
   /// Key for extra debugging loudness ([value] = 1200).
-  static const Level SHOUT = const Level('SHOUT', 1200);
+  static const Level SHOUT = Level('SHOUT', 1200);
 
-  static const List<Level> LEVELS = const [
+  static const List<Level> LEVELS = [
     ALL,
     FINEST,
     FINER,
@@ -361,7 +361,7 @@
 
   LogRecord(this.level, this.message, this.loggerName,
       [this.error, this.stackTrace, this.zone, this.object])
-      : time = new DateTime.now(),
+      : time = DateTime.now(),
         sequenceNumber = LogRecord._nextNumber++;
 
   @override
diff --git a/pubspec.yaml b/pubspec.yaml
index f1c89c1..3621317 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,7 +1,7 @@
 name: logging
-version: 0.11.3+2
+version: 0.11.4-dev
 
-description: >
+description: >-
   Provides APIs for debugging and error logging. This library introduces
   abstractions similar to those used in other languages, such as the Closure
   JS Logger and java.util.logging.Logger.
@@ -9,7 +9,7 @@
 homepage: https://github.com/dart-lang/logging
 
 environment:
-  sdk: '>=1.5.0 <3.0.0'
+  sdk: '>=2.0.0 <3.0.0'
 
 dev_dependencies:
   test: '>=0.12.0 <2.0.0'
diff --git a/test/logging_test.dart b/test/logging_test.dart
index c854344..c384b55 100644
--- a/test/logging_test.dart
+++ b/test/logging_test.dart
@@ -62,7 +62,7 @@
   });
 
   test('levels are hashable', () {
-    var map = new Map<Level, String>();
+    var map = Map<Level, String>();
     map[Level.INFO] = 'info';
     map[Level.SHOUT] = 'shout';
     expect(map[Level.INFO], same('info'));
@@ -70,11 +70,11 @@
   });
 
   test('logger name cannot start with a "." ', () {
-    expect(() => new Logger('.c'), throwsArgumentError);
+    expect(() => Logger('.c'), throwsArgumentError);
   });
 
   test('logger naming is hierarchical', () {
-    Logger c = new Logger('a.b.c');
+    Logger c = Logger('a.b.c');
     expect(c.name, equals('c'));
     expect(c.parent.name, equals('b'));
     expect(c.parent.parent.name, equals('a'));
@@ -83,7 +83,7 @@
   });
 
   test('logger full name', () {
-    Logger c = new Logger('a.b.c');
+    Logger c = Logger('a.b.c');
     expect(c.fullName, equals('a.b.c'));
     expect(c.parent.fullName, equals('a.b'));
     expect(c.parent.parent.fullName, equals('a'));
@@ -92,9 +92,9 @@
   });
 
   test('logger parent-child links are correct', () {
-    Logger a = new Logger('a');
-    Logger b = new Logger('a.b');
-    Logger c = new Logger('a.c');
+    Logger a = Logger('a');
+    Logger b = Logger('a.b');
+    Logger c = Logger('a.c');
     expect(a, same(b.parent));
     expect(a, same(c.parent));
     expect(a.children['b'], same(b));
@@ -102,18 +102,18 @@
   });
 
   test('loggers are singletons', () {
-    Logger a1 = new Logger('a');
-    Logger a2 = new Logger('a');
-    Logger b = new Logger('a.b');
+    Logger a1 = Logger('a');
+    Logger a2 = Logger('a');
+    Logger b = Logger('a.b');
     Logger root = Logger.root;
     expect(a1, same(a2));
     expect(a1, same(b.parent));
     expect(root, same(a1.parent));
-    expect(root, same(new Logger('')));
+    expect(root, same(Logger('')));
   });
 
   test('cannot directly manipulate Logger.children', () {
-    var loggerAB = new Logger('a.b');
+    var loggerAB = Logger('a.b');
     var loggerA = loggerAB.parent;
 
     expect(loggerA.children['b'], same(loggerAB), reason: 'can read Children');
@@ -126,12 +126,12 @@
   test('stackTrace gets throw to LogRecord', () {
     Logger.root.level = Level.INFO;
 
-    var records = new List<LogRecord>();
+    var records = List<LogRecord>();
 
     var sub = Logger.root.onRecord.listen(records.add);
 
     try {
-      throw new UnsupportedError('test exception');
+      throw UnsupportedError('test exception');
     } catch (error, stack) {
       Logger.root.log(Level.SEVERE, 'severe', error, stack);
       Logger.root.warning('warning', error, stack);
@@ -164,7 +164,7 @@
       var root = Logger.root;
 
       var recordingZone = Zone.current;
-      var records = new List<LogRecord>();
+      var records = List<LogRecord>();
       root.onRecord.listen(records.add);
       root.info('hello');
 
@@ -176,7 +176,7 @@
       var root = Logger.root;
 
       var recordingZone;
-      var records = new List<LogRecord>();
+      var records = List<LogRecord>();
       root.onRecord.listen(records.add);
 
       runZoned(() {
@@ -192,7 +192,7 @@
       var root = Logger.root;
 
       Zone recordingZone;
-      var records = new List<LogRecord>();
+      var records = List<LogRecord>();
       root.onRecord.listen(records.add);
 
       runZoned(() {
@@ -208,9 +208,9 @@
 
   group('detached loggers', () {
     test('create new instances of Logger', () {
-      Logger a1 = new Logger.detached('a');
-      Logger a2 = new Logger.detached('a');
-      Logger a = new Logger('a');
+      Logger a1 = Logger.detached('a');
+      Logger a2 = Logger.detached('a');
+      Logger a = Logger('a');
 
       expect(a1, isNot(a2));
       expect(a1, isNot(a));
@@ -218,23 +218,23 @@
     });
 
     test('parent is null', () {
-      Logger a = new Logger.detached('a');
+      Logger a = Logger.detached('a');
       expect(a.parent, null);
     });
 
     test('children is empty', () {
-      Logger a = new Logger.detached('a');
+      Logger a = Logger.detached('a');
       expect(a.children, {});
     });
   });
 
   group('mutating levels', () {
     Logger root = Logger.root;
-    Logger a = new Logger('a');
-    Logger b = new Logger('a.b');
-    Logger c = new Logger('a.b.c');
-    Logger d = new Logger('a.b.c.d');
-    Logger e = new Logger('a.b.c.d.e');
+    Logger a = Logger('a');
+    Logger b = Logger('a.b');
+    Logger c = Logger('a.b.c');
+    Logger d = Logger('a.b.c.d');
+    Logger e = Logger('a.b.c.d.e');
 
     setUp(() {
       hierarchicalLoggingEnabled = true;
@@ -549,7 +549,7 @@
       root.level = Level.INFO;
       var messages = [];
       var objects = [];
-      var object = new Object();
+      var object = Object();
       root.onRecord.listen((record) {
         messages.add('${record.level}: ${record.message}');
         objects.add(record.object);
@@ -589,7 +589,7 @@
     });
 
     test('no stack trace by default', () {
-      var records = new List<LogRecord>();
+      var records = List<LogRecord>();
       root.onRecord.listen(records.add);
       root.severe('hello');
       root.warning('hello');
@@ -601,7 +601,7 @@
     });
 
     test('trace recorded only on requested levels', () {
-      var records = new List<LogRecord>();
+      var records = List<LogRecord>();
       recordStackTraceAtLevel = Level.WARNING;
       root.onRecord.listen(records.add);
       root.severe('hello');
@@ -615,7 +615,7 @@
 
     test('provided trace is used if given', () {
       var trace = StackTrace.current;
-      var records = new List<LogRecord>();
+      var records = List<LogRecord>();
       recordStackTraceAtLevel = Level.WARNING;
       root.onRecord.listen(records.add);
       root.severe('hello');
@@ -626,7 +626,7 @@
     });
 
     test('error also generated when generating a trace', () {
-      var records = new List<LogRecord>();
+      var records = List<LogRecord>();
       recordStackTraceAtLevel = Level.WARNING;
       root.onRecord.listen(records.add);
       root.severe('hello');