authorgravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2023-09-20 15:42:33 -07:00
committergravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2023-09-20 15:42:33 -07:00
logf8f0f93960b5bd5e1d70cc5fde967f19b8646198
tree642db42e43777653b19a1364c4bcb6824a26fe6e
parent59e6040d4fdcfbd3dc0b5b319945cf29a517a03d

add README


1 files changed, 48 insertions(+), 0 deletions(-)

README.md created+48
...@@ -0,0 +1,48 @@
1# zig-tracer
2
3Generic tracing library for Zig, supports multiple backends.
4
5## Install
6
7- Supports Zigmod
8- Supports Zig package manager
9
10## Usage
11
12in your program:
13
14```zig
15const std = @import("std");
16const tracer = @import("tracer");
17const build_options = @import("build_options");
18
19pub const tracer_impl = tracer.spall; // supports none, log, spall out of the box
20
21pub fn main() !void {
22 try tracer.init();
23 defer tracer.deinit();
24
25 // main loop
26 while (true) {
27 try tracer.init2();
28 defer tracer.deinit2();
29
30 handler();
31 }
32}
33
34fn handler() void {
35 const t = tracer.trace(@src());
36 defer t.end();
37}
38```
39
40`@src()` values are absolute paths so backends use this value to trim it to only log relative paths
41
42```zig
43exe_options.addOption(usize, "src_file_trimlen", std.fs.path.dirname(std.fs.path.dirname(@src().file).?).?.len);
44```
45
46## License
47
48MIT