const std = @import("std"); pub fn logFn( comptime message_level: std.log.Level, comptime scope: @TypeOf(.enum_literal), comptime format: []const u8, args_: anytype, ) void { const prefix = comptime blk: { const level_text = lt: { switch (message_level) { .err => { break :lt "\x1b[31merror \x1b[0m"; }, .warn => { break :lt "\x1b[33mwarning\x1b[0m"; }, .info => { break :lt "\x1b[32minfo \x1b[0m"; }, .debug => { break :lt "\x1b[34mdebug \x1b[0m"; }, } }; const scope_prefix = scope: { if (scope == .default) { break :scope ""; } break :scope " \x1b[90m[\x1b[0m" ++ @tagName(scope) ++ "\x1b[90m]\x1b[0m"; }; break :blk level_text ++ scope_prefix ++ "\x1b[90m \x1b[0m"; }; const stderr = std.fs.File.stderr().deprecatedWriter(); var bw = std.io.bufferedWriter(stderr); const writer = bw.writer(); std.debug.lockStdErr(); defer std.debug.unlockStdErr(); nosuspend { writer.print(prefix ++ format ++ "\x1b[0m\n", args_) catch return; bw.flush() catch return; } }