log: added support for systemd-journal loglevels

Note: It's important to point out that in this commit
      we still don't need systemd-libs or systemd-devel

Signed-off-by: Andrej Manduch <amanduch@gmail.com>
Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
This commit is contained in:
Andrej Manduch 2015-03-03 12:51:44 -05:00 committed by Neil Horman
parent 2c98d43cb5
commit 03701f91bc
2 changed files with 33 additions and 2 deletions

View file

@ -59,6 +59,11 @@ char *banscript = NULL;
char *polscript = NULL;
long HZ;
#ifdef HAVE_SYSTEMD
char *line_buffer_7ee22e61_f183;
char *log_buffer_4c93_8665;
#endif /* HAVE_SYSTEMD */
static void sleep_approx(int seconds)
{
struct timespec ts;
@ -259,7 +264,10 @@ int main(int argc, char** argv)
sigaddset(&sigset,SIGUSR1);
sigaddset(&sigset,SIGUSR2);
sigprocmask(SIG_BLOCK, &sigset, &old_sigset);
#ifdef HAVE_SYSTEMD
line_buffer_7ee22e61_f183 = malloc(sizeof(char) * 2048);
log_buffer_4c93_8665 = malloc(sizeof(char) * 2048);
#endif /* HAVE_SYSTEMD */
#ifdef HAVE_GETOPT_LONG
parse_command_line(argc, argv);
#else /* ! HAVE_GETOPT_LONG */

View file

@ -60,6 +60,7 @@ enum hp_e {
};
extern int debug_mode;
extern int journal_logging;
extern int one_shot_mode;
extern int need_rescan;
extern enum hp_e global_hint_policy;
@ -136,12 +137,34 @@ static inline void for_each_object(GList *list, void (*cb)(struct topo_obj *obj,
extern char * log_indent;
extern unsigned int log_mask;
#ifdef HAVE_SYSTEMD
extern char *line_buffer_7ee22e61_f183;
extern char *log_buffer_4c93_8665;
#define log(mask, lvl, fmt, args...) do { \
if (journal_logging) { \
sprintf(log_buffer_4c93_8665,fmt, ##args); \
strcat(line_buffer_7ee22e61_f183, log_buffer_4c93_8665); \
if (line_buffer_7ee22e61_f183[strlen(line_buffer_7ee22e61_f183)-1]\
== '\n' || strlen(line_buffer_7ee22e61_f183) > 256 ) { \
printf("<%d>%s", lvl, line_buffer_7ee22e61_f183); \
line_buffer_7ee22e61_f183[0] = '\0'; \
line_buffer_7ee22e61_f183[0] = '\0'; \
} \
} else { \
if (log_mask & mask & TO_SYSLOG) \
syslog(lvl, fmt, ##args); \
if (log_mask & mask & TO_CONSOLE) \
printf(fmt, ##args); \
} \
}while(0)
#else /* ! HAVE_SYSTEMD */
#define log(mask, lvl, fmt, args...) do {\
if (log_mask & mask & TO_SYSLOG)\
syslog(lvl, fmt, ##args);\
if (log_mask & mask & TO_CONSOLE)\
printf(fmt, ##args);\
}while(0)
#endif /* HAVE_SYSTEMD */
#endif
#endif /* __INCLUDE_GUARD_IRQBALANCE_H_ */