diff options
| author | Sander Vrijders <sander.vrijders@intec.ugent.be> | 2017-02-08 17:07:45 +0000 | 
|---|---|---|
| committer | Sander Vrijders <sander.vrijders@intec.ugent.be> | 2017-02-08 17:07:45 +0000 | 
| commit | 6ade491f770904d8244863904359c449b5aeb5f7 (patch) | |
| tree | 26a9c0b622b5bf875b783692837d1069799f8fcc /include | |
| parent | 9117f7f6fec70f2da24e8e77256747d11d67bf8d (diff) | |
| parent | 742d01a4f9a32f17561104ee7da8971c1bcdd703 (diff) | |
| download | ouroboros-6ade491f770904d8244863904359c449b5aeb5f7.tar.gz ouroboros-6ade491f770904d8244863904359c449b5aeb5f7.zip | |
Merged in dstaesse/ouroboros/be-syslog (pull request #364)
lib: Log to the logging system
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 */ | 
