Added option for journal-style logging

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:42 -05:00 committed by Neil Horman
parent d97006c50c
commit 95b72fb9c9
3 changed files with 29 additions and 4 deletions

View file

@ -30,6 +30,14 @@ AC_C_CONST
AC_C_INLINE AC_C_INLINE
AM_PROG_CC_C_O AM_PROG_CC_C_O
AC_ARG_WITH([systemd],
[ AS_HELP_STRING([--with-systemd],[Add systemd logging support])],
)
AS_IF(
[test "x$with_systemd" = xyes],
[AC_DEFINE(HAVE_SYSTEMD, 1, [systemd support])]
)
AC_ARG_WITH([glib2], AC_ARG_WITH([glib2],
[AS_HELP_STRING([--without-glib2], [AS_HELP_STRING([--without-glib2],
[Don't use system glib2 library. Use local implementation instead.])], [Don't use system glib2 library. Use local implementation instead.])],

View file

@ -45,6 +45,10 @@ Causes irqbalance to print extra debug information. Implies --foreground.
.B -f, --foreground .B -f, --foreground
Causes irqbalance to run in the foreground (without --debug). Causes irqbalance to run in the foreground (without --debug).
.TP
.B -j, --journal
Enables log output optimized for systemd-journal.
.TP .TP
.B -h, --hintpolicy=[exact | subset | ignore] .B -h, --hintpolicy=[exact | subset | ignore]
Set the policy for how IRQ kernel affinity hinting is treated. Can be one of: Set the policy for how IRQ kernel affinity hinting is treated. Can be one of:

View file

@ -46,6 +46,7 @@ int one_shot_mode;
int debug_mode; int debug_mode;
int foreground_mode; int foreground_mode;
int numa_avail; int numa_avail;
int journal_logging = 0;
int need_rescan; int need_rescan;
unsigned int log_mask = TO_ALL; unsigned int log_mask = TO_ALL;
enum hp_e global_hint_policy = HINT_POLICY_IGNORE; enum hp_e global_hint_policy = HINT_POLICY_IGNORE;
@ -83,12 +84,15 @@ struct option lopts[] = {
{"deepestcache", 1, NULL, 'c'}, {"deepestcache", 1, NULL, 'c'},
{"policyscript", 1, NULL, 'l'}, {"policyscript", 1, NULL, 'l'},
{"pid", 1, NULL, 's'}, {"pid", 1, NULL, 's'},
#ifdef HAVE_SYSTEMD
{"journal", 0, NULL, 'j'},
#endif /* HAVE_SYSTEMD */
{0, 0, 0, 0} {0, 0, 0, 0}
}; };
static void usage(void) static void usage(void)
{ {
log(TO_CONSOLE, LOG_INFO, "irqbalance [--oneshot | -o] [--debug | -d] [--foreground | -f] [--hintpolicy= | -h [exact|subset|ignore]]\n"); log(TO_CONSOLE, LOG_INFO, "irqbalance [--oneshot | -o] [--debug | -d] [--foreground | -f] [--journal | -j] [--hintpolicy= | -h [exact|subset|ignore]]\n");
log(TO_CONSOLE, LOG_INFO, " [--powerthresh= | -p <off> | <n>] [--banirq= | -i <n>] [--policyscript=<script>] [--pid= | -s <file>] [--deepestcache= | -c <n>]\n"); log(TO_CONSOLE, LOG_INFO, " [--powerthresh= | -p <off> | <n>] [--banirq= | -i <n>] [--policyscript=<script>] [--pid= | -s <file>] [--deepestcache= | -c <n>]\n");
} }
@ -99,7 +103,7 @@ static void parse_command_line(int argc, char **argv)
unsigned long val; unsigned long val;
while ((opt = getopt_long(argc, argv, while ((opt = getopt_long(argc, argv,
"odfh:i:p:s:c:b:l:", "odfjh:i:p:s:c:b:l:",
lopts, &longind)) != -1) { lopts, &longind)) != -1) {
switch(opt) { switch(opt) {
@ -173,6 +177,11 @@ static void parse_command_line(int argc, char **argv)
case 's': case 's':
pidfile = optarg; pidfile = optarg;
break; break;
#ifdef HAVE_SYSTEMD
case 'j':
journal_logging=1;
break;
#endif /* HAVE_SYSTEMD */
} }
} }
} }
@ -250,7 +259,7 @@ int main(int argc, char** argv)
#ifdef HAVE_GETOPT_LONG #ifdef HAVE_GETOPT_LONG
parse_command_line(argc, argv); parse_command_line(argc, argv);
#else #else /* ! HAVE_GETOPT_LONG */
if (argc>1 && strstr(argv[1],"--debug")) { if (argc>1 && strstr(argv[1],"--debug")) {
debug_mode=1; debug_mode=1;
foreground_mode=1; foreground_mode=1;
@ -259,7 +268,11 @@ int main(int argc, char** argv)
foreground_mode=1; foreground_mode=1;
if (argc>1 && strstr(argv[1],"--oneshot")) if (argc>1 && strstr(argv[1],"--oneshot"))
one_shot_mode=1; one_shot_mode=1;
#endif # ifdef HAVE_SYSTEMD
if (argc>1 && strstr(argv[1],"--journal"))
journal_logging=1;
# endif /* HAVE_SYSTEMD */
#endif /* HAVE_GETOPT_LONG */
/* /*
* Open the syslog connection * Open the syslog connection