2022-11-30 12:29:28 +00:00
|
|
|
#pragma once
|
2022-11-30 16:28:46 +00:00
|
|
|
#include <Attributes.h>
|
2022-11-30 12:29:28 +00:00
|
|
|
#include <Result.h>
|
|
|
|
#include <stdarg.h>
|
|
|
|
|
|
|
|
enum class LogLevel
|
|
|
|
{
|
|
|
|
Debug,
|
|
|
|
Info,
|
|
|
|
Warn,
|
|
|
|
Error,
|
|
|
|
};
|
|
|
|
|
|
|
|
Result<void> vlog(LogLevel level, const char* format, va_list ap);
|
2022-11-30 16:28:46 +00:00
|
|
|
Result<void> log(LogLevel level, const char* format, ...) _format(2, 3);
|
2022-11-30 12:29:28 +00:00
|
|
|
|
|
|
|
void setup_log(bool enable_debug, bool enable_serial, bool enable_text_console);
|
|
|
|
bool log_debug_enabled();
|
|
|
|
bool log_serial_enabled();
|
|
|
|
bool log_text_console_enabled();
|
|
|
|
|
|
|
|
#define kdbgln(...) log(LogLevel::Debug, __VA_ARGS__)
|
|
|
|
#define kinfoln(...) log(LogLevel::Info, __VA_ARGS__)
|
|
|
|
#define kwarnln(...) log(LogLevel::Warn, __VA_ARGS__)
|
|
|
|
#define kerrorln(...) log(LogLevel::Error, __VA_ARGS__)
|
|
|
|
|
|
|
|
#define try_kdbgln(...) TRY(log(LogLevel::Debug, __VA_ARGS__))
|
|
|
|
#define try_kinfoln(...) TRY(log(LogLevel::Info, __VA_ARGS__))
|
|
|
|
#define try_kwarnln(...) TRY(log(LogLevel::Warn, __VA_ARGS__))
|
|
|
|
#define try_kerrorln(...) TRY(log(LogLevel::Error, __VA_ARGS__))
|