#include #include "website.h" struct Debug_Output { FILE *output; int min_level; int max_level; String name; }; Debug_Output info; Debug_Output error; void init_logger() { info.output = stdout; info.min_level = info.max_level = 0; info.name.assign("info", 4); error.output = stderr; error.min_level = info.max_level = 0; error.name.assign("error", 5); } static void log(Debug_Output& dbg, const char *fmt, va_list args) { String out; write_formatted_string(out, fmt, args); fwrite(out.data(), 1, out.len, dbg.output); if (out.data()[out.len-1] != '\n') fputc('\n', dbg.output); } void log_info(const char *fmt, ...) { va_list args; va_start(args, fmt); log(info, fmt, args); va_end(args); } void log_error(const char *fmt, ...) { va_list args; va_start(args, fmt); log(error, fmt, args); va_end(args); }