Installation ​
This guide covers all available methods to install Logly.zig in your project.
Prerequisites ​
- Zig 0.15.0 or higher
- Basic familiarity with Zig
Method 1: Using Zig Fetch (Recommended) ​
The easiest way to install Logly-Zig is using the zig fetch command:
zig fetch --save https://github.com/muhammad-fiaz/logly.zig/archive/refs/tags/0.1.3.tar.gzOr for Nightly/PreRelease:
zig fetch --save git+https://github.com/muhammad-fiaz/logly.zig.gitThis command automatically:
- Downloads the package
- Calculates the hash
- Adds it to your
build.zig.zon
Method 2: Manual Installation ​
If you prefer manual installation, add to your build.zig.zon:
.{
.name = "my-project",
.version = "0.1.0",
.dependencies = .{
.logly = .{
.url = "https://github.com/muhammad-fiaz/logly.zig/archive/refs/tags/0.1.3.tar.gz",
.hash = "1220...", // Run: zig fetch <url> to get this hash
},
},
}To get the hash manually, run:
zig fetch https://github.com/muhammad-fiaz/logly.zig/archive/refs/tags/0.1.2.tar.gzCopy the output hash (e.g., 1220abcd23f9f0c8...) into your build.zig.zon.
Method 3: Prebuilt Libraries ​
While we recommend using the Zig Package Manager, we also provide prebuilt static libraries for each release on the Releases page. These can be useful for integration with other build systems or languages.
Available Prebuilt Libraries ​
| Platform | Architecture | File |
|---|---|---|
| Windows | x86_64 | logly-x86_64-windows.lib |
| Windows | x86 | logly-x86-windows.lib |
| Linux | x86_64 | liblogly-x86_64-linux.a |
| Linux | x86 | liblogly-x86-linux.a |
| Linux | ARM64 | liblogly-aarch64-linux.a |
| macOS | x86_64 | liblogly-x86_64-macos.a |
| macOS | ARM64 (Apple Silicon) | liblogly-aarch64-macos.a |
| Bare Metal | x86_64 | liblogly-x86_64-freestanding.a |
| Bare Metal | ARM64 | liblogly-aarch64-freestanding.a |
| Bare Metal | RISC-V 64 | liblogly-riscv64-freestanding.a |
| Bare Metal | ARM | liblogly-arm-freestanding.a |
Using Prebuilt Libraries ​
- Download the appropriate library from the Releases page
- Place it in your project (e.g.,
libs/folder) - Update your
build.zig:
// Assuming you downloaded the library to `libs/`
exe.addLibraryPath(b.path("libs"));
exe.linkSystemLibrary("logly");Configuring build.zig ​
After adding the dependency, update your build.zig to use Logly:
const std = @import("std");
pub fn build(b: *std.Build) void {
const target = b.standardTargetOptions(.{});
const optimize = b.standardOptimizeOption(.{});
const exe = b.addExecutable(.{
.name = "my-app",
.root_source_file = b.path("src/main.zig"),
.target = target,
.optimize = optimize,
});
// Add logly dependency
const logly_dep = b.dependency("logly", .{
.target = target,
.optimize = optimize,
});
exe.root_module.addImport("logly", logly_dep.module("logly"));
b.installArtifact(exe);
// Add run step
const run_cmd = b.addRunArtifact(exe);
run_cmd.step.dependOn(b.getInstallStep());
const run_step = b.step("run", "Run the application");
run_step.dependOn(&run_cmd.step);
}Verifying Installation ​
Create a simple test file src/main.zig:
const std = @import("std");
const logly = @import("logly");
pub fn main() !void {
var gpa = std.heap.GeneralPurposeAllocator(.{}){};
defer _ = gpa.deinit();
const allocator = gpa.allocator();
const logger = try logly.Logger.init(allocator);
defer logger.deinit();
try logger.info("Logly installed successfully!", @src());
}Build and run:
zig build runYou should see colored output:
2024-12-24 12:00:00.000 | INFO | Logly installed successfully!Build Options ​
Logly supports several build options that can be passed to the dependency:
const logly_dep = b.dependency("logly", .{
.target = target,
.optimize = optimize,
// Optional build options can be added here
});Available Build Modes ​
| Mode | Description | Use Case |
|---|---|---|
Debug | Full debug info, no optimization | Development |
ReleaseSafe | Optimized with safety checks | Testing |
ReleaseFast | Maximum optimization | Production |
ReleaseSmall | Size optimization | Embedded |
Troubleshooting ​
Hash Mismatch Error ​
If you get a hash mismatch error:
error: hash mismatchUpdate the hash in your build.zig.zon by running:
zig fetch https://github.com/muhammad-fiaz/logly.zig/archive/refs/tags/0.1.3.tar.gzModule Not Found ​
If you get "module 'logly' not found":
- Ensure the dependency is correctly added to
build.zig.zon - Verify
build.zighas the correct import line:zigexe.root_module.addImport("logly", logly_dep.module("logly"));
Network Issues ​
If you're behind a firewall or have network issues:
- Download the tarball manually from GitHub
- Use local path in
build.zig.zon:zig.logly = .{ .path = "../logly.zig", },
Updating Logly ​
To update to a newer version:
- Update the URL in
build.zig.zonto the new version tag - Run
zig fetchto get the new hash - Update the hash in
build.zig.zon - Rebuild your project
Or simply run:
zig fetch --save https://github.com/muhammad-fiaz/logly.zig/archive/refs/tags/NEW_VERSION.tar.gzNext Steps ​
- Quick Start Guide - Get logging in 5 minutes
- Configuration Guide - Customize your logger
- API Reference - Full API documentation
