Skip to content

Constants API ​

The Constants module provides architecture-dependent types and default configuration values used throughout the library.

Atomic Types ​

Cross-platform atomic integer types ensuring compatibility between 32-bit and 64-bit architectures.

zig
/// Unsigned atomic integer (u64 on 64-bit, u32 on 32-bit)
pub const AtomicUnsigned = ...;

/// Signed atomic integer (i64 on 64-bit, i32 on 32-bit)
pub const AtomicSigned = ...;

/// Native pointer-sized unsigned integer
pub const NativeUint = ...;

/// Native pointer-sized signed integer
pub const NativeInt = ...;

Buffer Sizes ​

Default buffer sizes for various operations.

zig
pub const BufferSizes = struct {
    /// Default log message buffer size (4KB)
    pub const message: usize = 4096;
    /// Default format buffer size (8KB)
    pub const format: usize = 8192;
    /// Default sink buffer size (16KB)
    pub const sink: usize = 16384;
    /// Default async queue buffer size (8KB)
    pub const async_queue: usize = 8192;
    /// Default compression buffer size (32KB)
    pub const compression: usize = 32768;
    /// Maximum log message size (1MB)
    pub const max_message: usize = 1024 * 1024;
};

Thread Defaults ​

Default thread pool settings and helpers.

zig
pub const ThreadDefaults = struct {
    /// Default number of threads (0 = auto-detect)
    pub const thread_count: usize = 0;
    /// Default queue size per thread
    pub const queue_size: usize = 1024;
    /// Default stack size for worker threads (1MB)
    pub const stack_size: usize = 1024 * 1024;
    /// Default wait timeout (100ms)
    pub const wait_timeout_ns: u64 = 100 * std.time.ns_per_ms;
    /// Maximum concurrent tasks
    pub const max_tasks: usize = 10000;

    /// Recommended thread count for general use
    pub fn recommendedThreadCount() usize;
    /// Recommended thread count for I/O bound workloads
    pub fn ioBoundThreadCount() usize;
    /// Recommended thread count for CPU bound workloads
    pub fn cpuBoundThreadCount() usize;
};

Level Constants ​

Log level counting and priorities.

zig
pub const LevelConstants = struct {
    /// Total number of built-in log levels
    pub const count: usize = 10;
    /// Minimum priority value (TRACE)
    pub const min_priority: u8 = 5;
    /// Maximum priority value (FATAL)
    pub const max_priority: u8 = 55;
    /// Default level priority (INFO)
    pub const default_priority: u8 = 20;
};

Time Constants ​

Time conversion and default intervals.

zig
pub const TimeConstants = struct {
    pub const ms_per_second: u64 = 1000;
    pub const us_per_second: u64 = 1_000_000;
    pub const ns_per_second: u64 = 1_000_000_000;
    /// Default flush interval (100ms)
    pub const default_flush_interval_ms: u64 = 100;
    /// Default rotation check interval (1 min)
    pub const rotation_check_interval_ms: u64 = 60_000;
};

Rotation Constants ​

Default file rotation settings.

zig
pub const RotationConstants = struct {
    /// Default max file size (10MB)
    pub const default_max_size: u64 = 10 * 1024 * 1024;
    /// Default max backup files (5)
    pub const default_max_files: usize = 5;
    /// Default compressed extension (.gz)
    pub const compressed_ext: []const u8 = ".gz";
};

Network Constants ​

Default network logging settings.

zig
pub const NetworkConstants = struct {
    /// Default TCP buffer size (8KB)
    pub const tcp_buffer_size: usize = 8192;
    /// Default UDP max packet size (64KB)
    pub const udp_max_packet: usize = 65507;
    /// Connect timeout (5s)
    pub const connect_timeout_ms: u64 = 5000;
    /// Send timeout (1s)
    pub const send_timeout_ms: u64 = 1000;
};

Rules Constants ​

Rules system configuration values.

zig
pub const RulesConstants = struct {
    pub const default_indent: []const u8 = "    ";
    pub const default_prefix: []const u8 = "↳"; // Deprecated
    pub const default_prefix_ascii: []const u8 = "|--"; // Deprecated
    pub const default_max_rules: usize = 1000;
    pub const default_max_messages: usize = 10;

    /// Default symbols for message categories (ASCII)
    pub const Symbols: struct { ... };
    /// ASCII prefixes for message categories
    pub const PrefixesAscii: struct { ... };
    /// ANSI color codes for message categories
    pub const Colors: struct { ... };
};

Released under the MIT License.