aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2021-12-01 12:22:58 +0100
committerFlorian Dold <florian@dold.me>2021-12-01 12:22:58 +0100
commit718595a57264c1bea55db9c00dcd2e0182afa0a3 (patch)
treed4a71da0c958349d08dd88520ba8f621200305a3
parent54d4a1efe0a55a80ed594f14698da16dfded8c47 (diff)
write logs atomically
-rw-r--r--packages/taler-util/src/logging.ts19
1 files changed, 10 insertions, 9 deletions
diff --git a/packages/taler-util/src/logging.ts b/packages/taler-util/src/logging.ts
index 117664d8c..ca7210eaa 100644
--- a/packages/taler-util/src/logging.ts
+++ b/packages/taler-util/src/logging.ts
@@ -71,22 +71,23 @@ function writeNodeLog(
args: any[],
): void {
try {
- process.stderr.write(`${new Date().toISOString()} ${tag} ${level} `);
- process.stderr.write(`${message}`);
+ let msg = `${new Date().toISOString()} ${tag} ${level} ${message}`;
if (args.length != 0) {
- process.stderr.write(" ");
- process.stderr.write(JSON.stringify(args, undefined, 2));
+ msg += ` ${JSON.stringify(args, undefined, 2)}\n`;
+ } else {
+ msg += `\n`;
}
- process.stderr.write("\n");
+ process.stderr.write(msg);
} catch (e) {
// This can happen when we're trying to log something that doesn't want to be
// converted to a string.
- process.stderr.write(`${new Date().toISOString()} (logger) FATAL `);
+ let msg = `${new Date().toISOString()} (logger) FATAL `;
if (e instanceof Error) {
- process.stderr.write("failed to write log: ");
- process.stderr.write(e.message);
+ msg += `failed to write log: ${e.message}\n`;
+ } else {
+ msg += "failed to write log\n";
}
- process.stderr.write("\n");
+ process.stderr.write(msg);
}
}