Custom Colors
This example demonstrates how to define and use custom colors for log levels. Logly colors the entire log line (timestamp, level, and message), not just the level tag.
Platform Support
Logly supports ANSI colors on:
- Linux: Native support
- macOS: Native support
- Windows 10+: Enabled via
Terminal.enableAnsiColors() - VS Code Terminal: Full support
Code Example
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();
// Enable ANSI colors on Windows (no-op on Linux/macOS)
_ = logly.Terminal.enableAnsiColors();
const logger = try logly.Logger.init(allocator);
defer logger.deinit();
// Define custom levels with specific colors
// Format: "FG;BG;STYLE" or just "FG"
// Colors: 30=Black, 31=Red, 32=Green, 33=Yellow, 34=Blue, 35=Magenta, 36=Cyan, 37=White
// Bright: 90-97 for bright versions (e.g., 91=Bright Red)
// Styles: 1=Bold, 4=Underline, 7=Reverse
try logger.addCustomLevel("NOTICE", 22, "36;1"); // Cyan Bold
try logger.addCustomLevel("ALERT", 42, "31;4"); // Red Underline
try logger.addCustomLevel("HIGHLIGHT", 52, "33;7"); // Yellow Reverse
// Standard levels (entire line colored):
try logger.info("Info message - entire line is white", @src());
try logger.success("Success message - entire line is green", @src());
try logger.warn("Warning message - entire line is yellow", @src()); // Short alias
try logger.err("Error message - entire line is red", @src());
// Custom levels (entire line colored with custom colors):
try logger.custom("NOTICE", "Notice message - entire line cyan bold", @src());
try logger.custom("ALERT", "Alert message - entire line red underline", @src());
try logger.custom("HIGHLIGHT", "Highlighted - entire line yellow reverse", @src());
}Standard Level Colors
| Level | ANSI Code | Color |
|---|---|---|
| TRACE | 36 | Cyan |
| DEBUG | 34 | Blue |
| INFO | 37 | White |
| SUCCESS | 32 | Green |
| WARNING | 33 | Yellow |
| ERROR | 31 | Red |
| FAIL | 35 | Magenta |
| CRITICAL | 91 | Bright Red |
Expected Output
text
[2025-01-01 12:00:00.000] [INFO] Info message - entire line is white
[2025-01-01 12:00:00.000] [SUCCESS] Success message - entire line is green
[2025-01-01 12:00:00.000] [WARNING] Warning message - entire line is yellow
[2025-01-01 12:00:00.000] [ERROR] Error message - entire line is red
[2025-01-01 12:00:00.000] [NOTICE] Notice message - entire line cyan bold
[2025-01-01 12:00:00.000] [ALERT] Alert message - entire line red underline
[2025-01-01 12:00:00.000] [HIGHLIGHT] Highlighted - entire line yellow reverse