sam701/slog
Structured logging for Zig
4496d1c40b2223c22a1341e175fc2ecd94cc0de9
slog
is a configurable, structured logging package for Zig with support for hierarchical loggers.
Add slog
to your build.zig.zon
zig fetch --save git+https://github.com/sam701/slog
Example code:
const std = @import("std");
const slog = @import("slog");
pub fn main() !void {
var log = try slog.initRootLogger(std.heap.page_allocator, .{});
defer log.deinit();
var log2 = try log.initChildLogger("mod1");
var log3 = try log2.initChildLogger("mod2");
var log4 = try log3.initChildLogger("mod3");
log.info("Hello slog!", .{ .field1 = "value1", .field2 = "value1", .rate = 30 });
log2.trace("Hello slog!", .{ .field1 = "value1", .field2 = "value2", .rate = 30 });
log2.debug("Hello slog!", .{ .field1 = "value1", .field2 = "value3", .rate = 30 });
log2.info("Hello slog!", .{ .field1 = "value1", .field2 = "value4", .rate = 30e2 });
log3.warn("Hello slog!", .{ .field1 = "value1", .field2 = "value5", .rate = 30.34534 });
log3.err("Hello slog!", .{ .field1 = "value1", .field2 = "value6", .rate = 30, .active = true, .metadata = null });
log4.err("Hello slog!", .{ .field1 = "value1", .field2 = "value6", .rate = 30, .active = true, .metadata = null });
}
ZIG_LOG
- configures log level, e.g. info,mod1=debug,mod2.mod3=warn
.ZIG_LOG_COLORS
- configures color scheme for text logger, e.g. timestamp=31;1,logger=33
.