/* ckerrlog.h - Error report and logging for ck ------------------------*- C -*- * * This file is part of ck, the config keeper * * ----------------------------------------------------------------------------- * * Copyright (C) 2018 Anastasis Grammenos * GPLv3 (see LICENCE for the full notice) * * -------------------------------------------------------------------------- */ #ifndef CKERRLOG_H #define CKERRLOG_H #include #include #include #include #define CK_STREAMS \ X(err) \ X(log) \ X(help) void ckerr_add_component(char *txt, ...); extern void initialize_errlog(); extern void report_errlog(); extern void errlog_set_verbose(int level); extern void ckerr(char *err, ...); extern void cklog(char *log, ...); extern void ckhelp(char *log, ...); extern void report_err(); extern void report_help(); /**********/ /* Macros */ /**********/ /* define the component's name */ #define ERRLOG(_COMPONENT) \ static const char COMPONENT[STR_S] = #_COMPONENT #define ERR(...) \ ckerr("Error in [%s]:", COMPONENT); \ ckerr(__VA_ARGS__); \ report_err(); #endif /* CKERRLOG_H */