#pragma once // ============================================================================== // Minimal printf-style logger // ============================================================================== // Replaces the kernel's dev_dbg/dev_err from medusalix/xone. Writes to // stderr; the Swift app layer can redirect or swallow it later. // ============================================================================== #include #include namespace xone { enum class log_level { debug = 0, info, warn, error, }; inline auto log_msg(log_level level, char const* fmt, ...) -> void { char const* tag = "?"; switch (level) { case log_level::debug: tag = "debug"; break; case log_level::info: tag = "info"; break; case log_level::warn: tag = "warn"; break; case log_level::error: tag = "error"; break; } std::fprintf(stderr, "[%s] ", tag); va_list ap; va_start(ap, fmt); std::vfprintf(stderr, fmt, ap); va_end(ap); std::fprintf(stderr, "\n"); } } // namespace xone