From 37a7f034c84de59b59a28fddf0757673e6e5a244 Mon Sep 17 00:00:00 2001 From: Pierre Tachoire Date: Thu, 2 Jul 2026 11:23:45 +0200 Subject: [PATCH] use writerStreaming in log --- src/log.zig | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/log.zig b/src/log.zig index f9b7a793b..20ac2fa11 100644 --- a/src/log.zig +++ b/src/log.zig @@ -172,7 +172,11 @@ pub fn log(scope: Scope, level: Level, msg: []const u8, data: anytype) void { var buf: [4096]u8 = undefined; var stderr = std.fs.File.stderr(); - var writer = stderr.writer(&buf); + // writerStreaming, not writer: the default positional mode starts each + // fresh Writer at offset 0, so when stderr is redirected to a regular file + // every log line overwrites the previous one. Streaming writes at the fd + // offset, which is what append-style logging needs. + var writer = stderr.writerStreaming(&buf); logTo(scope, level, msg, data, &writer.interface) catch |log_err| { std.debug.print("$time={d} $level=fatal $scope={s} $msg=\"log err\" err={s} log_msg=\"{s}\"\n", .{ timestamp(.clock), @errorName(log_err), @tagName(scope), msg });