logJsonDiagnostic

Logs a message in JSON format.

Parameters

args
Type: T

pairs of name (string) and value

Examples

1 import std.regex : ctRegex, matchFirst;
2 import std.stdio : File, stderr;
3 
4 auto origStderr = stderr;
5 stderr = File.tmpfile();
6 scope (exit)
7 {
8     stderr.close();
9     stderr = origStderr;
10 }
11 
12 logJsonError("error", "mysterious observation", "secret", 42);
13 
14 stderr.rewind();
15 auto expected = ctRegex!(
16         `\{"secret":42,"error":"mysterious observation","thread":[0-9]+,"timestamp":[0-9]+\}` ~ '\n');
17 auto observed = stderr.readln;
18 
19 assert(matchFirst(observed, expected), "got unexpected output `" ~ observed ~ "`");

Meta