tweak exception report
diff --git a/lib/src/usage_impl.dart b/lib/src/usage_impl.dart
index 8fe4a93..d04e3d6 100644
--- a/lib/src/usage_impl.dart
+++ b/lib/src/usage_impl.dart
@@ -166,7 +166,7 @@
       description = description.substring(0, description.indexOf('file:/'));
     }
 
-    description = description.replaceAll('\n', ';');
+    description = description.replaceAll('\n', '; ');
 
     if (description != null && description.length > maxExceptionLength) {
       description = description.substring(0, maxExceptionLength);
diff --git a/lib/usage.dart b/lib/usage.dart
index e4fe539..7589e33 100644
--- a/lib/usage.dart
+++ b/lib/usage.dart
@@ -297,7 +297,7 @@
 
   if (shorten) {
     // Shorten the stacktrace up a bit.
-    str = str.replaceAll('\n', ';').replaceAll(new RegExp(r'\s+'), ' ');
+    str = str.replaceAll(new RegExp(r'[\t ]+'), ' ');
   }
 
   return str;
diff --git a/test/usage_test.dart b/test/usage_test.dart
index 6e11514..8c4cedb 100644
--- a/test/usage_test.dart
+++ b/test/usage_test.dart
@@ -50,14 +50,14 @@
       expect(
           sanitizeStacktrace('foo (file:///Users/foo/tmp/error.dart:3:13)\n'
               'bar (file:///Users/foo/tmp/error.dart:3:13)'),
-          'foo (error.dart:3:13);bar (error.dart:3:13)');
+          'foo (error.dart:3:13)\nbar (error.dart:3:13)');
     });
 
     test('shorten 3', () {
       expect(
           sanitizeStacktrace('foo (package:foo/foo.dart:3:13)\n'
               'bar (dart:async/schedule_microtask.dart:41)'),
-          'foo (package:foo/foo.dart:3:13);bar (dart:async/schedule_microtask.dart:41)');
+          'foo (package:foo/foo.dart:3:13)\nbar (dart:async/schedule_microtask.dart:41)');
     });
   });
 }