Skip to content

Commit 04d6d35

Browse files
committed
With the default logger, print exceptions with a terse stack trace
Fixes #130
1 parent 4f60da5 commit 04d6d35

File tree

1 file changed

+23
-4
lines changed

1 file changed

+23
-4
lines changed

lib/src/generate/options.dart

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import 'dart:io';
77
import 'package:logging/logging.dart';
88
import 'package:shelf/shelf.dart';
99
import 'package:shelf_static/shelf_static.dart';
10+
import 'package:stack_trace/stack_trace.dart';
1011

1112
import '../analyzer/resolver.dart';
1213
import '../asset/cache.dart';
@@ -91,11 +92,29 @@ void _defaultLogListener(LogRecord record) {
9192
} else {
9293
color = _red;
9394
}
94-
var message = '${_isPosixTerminal ? '\x1b[2K\r' : ''}'
95+
var header = '${_isPosixTerminal ? '\x1b[2K\r' : ''}'
9596
'$color[${record.level}]$_endColor ${record.loggerName}: '
96-
'${record.message}${record.error != null ? "\n${record.error}" : ""}'
97-
'${record.stackTrace != null ? "\n${record.stackTrace}" : ""}'
98-
'${record.level > Level.INFO || !_isPosixTerminal ? '\n' : ''}';
97+
'${record.message}';
98+
var lines = <Object>[header];
99+
100+
if (record.error != null) {
101+
lines.add(record.error);
102+
}
103+
104+
if (record.stackTrace != null) {
105+
if (record.stackTrace is Trace) {
106+
lines.add((record.stackTrace as Trace).terse);
107+
} else {
108+
lines.add(record.stackTrace);
109+
}
110+
}
111+
112+
if (record.level > Level.INFO || !_isPosixTerminal) {
113+
lines.add('');
114+
}
115+
116+
var message = lines.join('\n');
117+
99118
if (record.level >= Level.SEVERE) {
100119
stderr.write(message);
101120
} else {

0 commit comments

Comments
 (0)