authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-07-10 12:41:26-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-07-10 16:52:29-07:00
logbd5745ddf2f5a5d42553b30241f0a44550f1672e
tree06632df6dbbbb719830929ea5ff36c33b14fef2b
parent5360968e03525be4d312ca61a7ba2dcb7890ec42

std.log.defaultLog: provide a small buffer


1 files changed, 8 insertions(+), 11 deletions(-)

lib/std/log.zig+8-11
......@@ -137,8 +137,11 @@ pub fn defaultLogEnabled(comptime message_level: Level) bool {
137137 return comptime logEnabled(message_level, default_log_scope);
138138}
139139
140/// The default implementation for the log function, custom log functions may
140/// The default implementation for the log function. Custom log functions may
141141/// forward log messages to this function.
142///
143/// Uses a 64-byte buffer for formatted printing which is flushed before this
144/// function returns.
142145pub fn defaultLog(
143146 comptime message_level: Level,
144147 comptime scope: @Type(.enum_literal),
......@@ -147,16 +150,10 @@ pub fn defaultLog(
147150) void {
148151 const level_txt = comptime message_level.asText();
149152 const prefix2 = if (scope == .default) ": " else "(" ++ @tagName(scope) ++ "): ";
150 const stderr = std.fs.File.stderr().deprecatedWriter();
151 var bw = std.io.bufferedWriter(stderr);
152 const writer = bw.writer();
153
154 std.debug.lockStdErr();
155 defer std.debug.unlockStdErr();
156 nosuspend {
157 writer.print(level_txt ++ prefix2 ++ format ++ "\n", args) catch return;
158 bw.flush() catch return;
159 }
153 var buffer: [64]u8 = undefined;
154 const stderr = std.debug.lockStderrWriter(&buffer);
155 defer std.debug.unlockStderrWriter();
156 nosuspend stderr.print(level_txt ++ prefix2 ++ format ++ "\n", args) catch return;
160157}
161158
162159/// Returns a scoped logging namespace that logs all messages using the scope