log method
void
log(})
Write a new log
Implementation
void log(
Severity severity,
String message, {
Object? payload,
Map<String, dynamic>? labels,
StackTrace? stackTrace,
bool isError = false,
bool includeStacktrace = false,
bool includeSourceLocation = true,
List<String> packageExcludeList = const [
'dart_frog',
'shelf',
'request_logger',
],
}) {
final resolvedStdout = _testingStdout ?? stdout;
final chain =
(stackTrace != null ? Chain.forTrace(stackTrace) : Chain.current())
.foldFrames(
(f) => f.isCore || packageExcludeList.contains(f.package),
terse: true,
);
final stackFrame = frameFromChain(
chain,
packageExcludeList: packageExcludeList,
);
Map<String, dynamic>? payloadMap;
try {
payloadMap = jsonDecode(jsonEncode(payload)) as Map<String, dynamic>?;
} catch (_) {
payloadMap = {'details': payload.toString()};
}
final logString = _logFormatter(
severity: severity,
message: message,
headers: _headers,
payload: payloadMap,
labels: labels,
isError: isError,
chain: includeStacktrace ? chain : null,
stackFrame: includeSourceLocation ? stackFrame : null,
);
resolvedStdout.writeln(logString);
}