/* * log_manager.h -- OreBolt OS v1.4 logging facade * * SPDX-License-Identifier: GPL-2.0-or-later * * Logs land at /data/vault/syslog.log (rotating, 64 KB max) and critical * failures at /data/vault/failures.dat (binary, append-only). */ #ifndef LOG_MANAGER_H #define LOG_MANAGER_H #include #ifdef __cplusplus extern "C" { #endif typedef enum { LOG_TRACE = 0, LOG_DEBUG, LOG_INFO, LOG_WARN, LOG_ERROR, LOG_FATAL } log_level_t; int log_init(const char *path); void log_close(void); void log_write(log_level_t lvl, const char *module, const char *fmt, ...); /* Failure logging -- binary, durable, used by panic_purge_api.h. */ int log_failure_record(uint32_t code, const void *blob, size_t len); #define LOG_TRC(fmt, ...) log_write(LOG_TRACE, __func__, fmt, ##__VA_ARGS__) #define LOG_DBG(fmt, ...) log_write(LOG_DEBUG, __func__, fmt, ##__VA_ARGS__) #define LOG_INF(fmt, ...) log_write(LOG_INFO, __func__, fmt, ##__VA_ARGS__) #define LOG_WRN(fmt, ...) log_write(LOG_WARN, __func__, fmt, ##__VA_ARGS__) #define LOG_ERR(fmt, ...) log_write(LOG_ERROR, __func__, fmt, ##__VA_ARGS__) #define LOG_FTL(fmt, ...) log_write(LOG_FATAL, __func__, fmt, ##__VA_ARGS__) #ifdef __cplusplus } #endif #endif /* LOG_MANAGER_H */