diff options
author | dimitri staessens <[email protected]> | 2017-02-08 17:09:55 +0100 |
---|---|---|
committer | dimitri staessens <[email protected]> | 2017-02-08 18:04:13 +0100 |
commit | 742d01a4f9a32f17561104ee7da8971c1bcdd703 (patch) | |
tree | 26a9c0b622b5bf875b783692837d1069799f8fcc /include | |
parent | 9117f7f6fec70f2da24e8e77256747d11d67bf8d (diff) | |
download | ouroboros-742d01a4f9a32f17561104ee7da8971c1bcdd703.tar.gz ouroboros-742d01a4f9a32f17561104ee7da8971c1bcdd703.zip |
lib: Log to the logging system
This removes the logfile and outputs log messages to the logging
system. The creation of the logfiles (as well as the ap_init() call)
were moved into ipcp_init() to simplify the IPCP creation and
shutdown.
Fixes #25
Fixes #27
Diffstat (limited to 'include')
-rw-r--r-- | include/ouroboros/logs.h | 56 |
1 files changed, 22 insertions, 34 deletions
diff --git a/include/ouroboros/logs.h b/include/ouroboros/logs.h index 4767a6f6..9b83abd2 100644 --- a/include/ouroboros/logs.h +++ b/include/ouroboros/logs.h @@ -28,61 +28,49 @@ #include <unistd.h> #include <stdio.h> #include <stdbool.h> +#include <syslog.h> #ifndef OUROBOROS_PREFIX #error You must define OUROBOROS_PREFIX before including this file #endif -int set_logfile(char * filename); -void close_logfile(void); +void log_init(bool sysout); -#define ANSI_COLOR_RED "\x1b[31m" -#define ANSI_COLOR_GREEN "\x1b[32m" -#define ANSI_COLOR_YELLOW "\x1b[33m" -#define ANSI_COLOR_BLUE "\x1b[34m" -#define ANSI_COLOR_RESET "\x1b[0m" +void log_fini(void); + +#define CLR_RED "\x1b[31m" +#define CLR_GREEN "\x1b[32m" +#define CLR_YELLOW "\x1b[33m" +#define CLR_RESET "\x1b[0m" #define DEBUG_CODE "DB" #define ERROR_CODE "EE" #define WARN_CODE "WW" #define INFO_CODE "II" -#define IMPL_CODE "NI" -extern FILE * logfile; +extern bool log_syslog; -#define __LOG(CLR, FUNC, LVL, ...) \ +#define __olog(CLR, LVL, SYSLVL, ...) \ do { \ - if (logfile != NULL) { \ - fprintf(logfile, OUROBOROS_PREFIX); \ - fprintf(logfile, "(" LVL "): "); \ - if (FUNC) \ - fprintf(logfile, "%s: ", __FUNCTION__); \ - fprintf(logfile, __VA_ARGS__); \ - fprintf(logfile, "\n"); \ - fflush(logfile); \ + if (log_syslog) { \ + syslog(SYSLVL, OUROBOROS_PREFIX ": " \ + __VA_ARGS__); \ } else { \ - printf(CLR "==%05d== ", getpid()); \ - printf(OUROBOROS_PREFIX "(" LVL "): "); \ - if (FUNC) \ - printf("%s: ", __FUNCTION__); \ + printf(CLR "==%05d== " OUROBOROS_PREFIX \ + "(" LVL "): ", getpid()); \ printf(__VA_ARGS__); \ - printf(ANSI_COLOR_RESET "\n"); \ + printf(CLR_RESET "\n"); \ } \ } while (0) -#define LOG_ERR(...) __LOG(ANSI_COLOR_RED, false, ERROR_CODE, __VA_ARGS__) -#define LOG_WARN(...) __LOG(ANSI_COLOR_YELLOW, false, WARN_CODE, __VA_ARGS__) -#define LOG_INFO(...) __LOG(ANSI_COLOR_GREEN, false, INFO_CODE, __VA_ARGS__) -#define LOG_NI(...) __LOG(ANSI_COLOR_BLUE, false, IMPL_CODE, __VA_ARGS__) +#define log_err(...) __olog(CLR_RED, ERROR_CODE, LOG_ERR, __VA_ARGS__) +#define log_warn(...) __olog(CLR_YELLOW, WARN_CODE, LOG_WARNING, __VA_ARGS__) +#define log_info(...) __olog(CLR_GREEN, INFO_CODE, LOG_INFO, __VA_ARGS__) #ifdef CONFIG_OUROBOROS_DEBUG -#define LOG_DBG(...) __LOG("", false, DEBUG_CODE, __VA_ARGS__) -#define LOG_DBGF(...) __LOG("", true, DEBUG_CODE, __VA_ARGS__) +#define log_dbg(...) __olog("", DEBUG_CODE, LOG_DEBUG, __VA_ARGS__) #else -#define LOG_DBG(...) do { } while (0) -#define LOG_DBGF(...) do { } while (0) +#define log_dbg(...) do { } while (0) #endif -#define LOG_MISSING LOG_NI("Missing code in %s:%d",__FILE__, __LINE__) - -#endif +#endif /* OUROBOROS_LOGS_H */ |