summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEric Leblond <eric@regit.org>2013-01-18 19:43:06 +0100
committerEric Leblond <eric@regit.org>2013-01-18 19:47:09 +0100
commit56c188731015f0abe0c04dcdf07d0badfc61217e (patch)
tree38d396e04e497753499288fa1e69900915f07a4b /src
parenta385170fee2e406afe0387f99361eebe7ce2b3c8 (diff)
Add -l option to set log level from command line
This patch adds a '-l' option which can be used to setup ulogd loglevel. Command line option has precedence on the configuration file one.
Diffstat (limited to 'src')
-rw-r--r--src/ulogd.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/ulogd.c b/src/ulogd.c
index 344d330..5693572 100644
--- a/src/ulogd.c
+++ b/src/ulogd.c
@@ -1112,6 +1112,7 @@ static void print_usage(void)
printf("\t-V --version\tPrint version information\n");
printf("\t-d --daemon\tDaemonize (fork into background)\n");
printf("\t-v --verbose\tOutput info on standard output\n");
+ printf("\t-l --loglevel\tSet log level\n");
printf("\t-c --configfile\tUse alternative Configfile\n");
printf("\t-u --uid\tChange UID/GID\n");
printf("\t-i --info\tDisplay infos about plugin\n");
@@ -1125,6 +1126,7 @@ static struct option opts[] = {
{ "uid", 1, NULL, 'u' },
{ "info", 1, NULL, 'i' },
{ "verbose", 0, NULL, 'v' },
+ { "loglevel", 1, NULL, 'l' },
{NULL, 0, NULL, 0}
};
@@ -1137,10 +1139,11 @@ int main(int argc, char* argv[])
struct passwd *pw;
uid_t uid = 0;
gid_t gid = 0;
+ int loglevel = 0;
ulogd_logfile = strdup(ULOGD_LOGFILE_DEFAULT);
- while ((argch = getopt_long(argc, argv, "c:dvh::Vu:i:", opts, NULL)) != -1) {
+ while ((argch = getopt_long(argc, argv, "c:dvl:h::Vu:i:", opts, NULL)) != -1) {
switch (argch) {
default:
case '?':
@@ -1189,9 +1192,17 @@ int main(int argc, char* argv[])
case 'v':
verbose = 1;
break;
+ case 'l':
+ loglevel = atoi(optarg);
+ break;
}
}
+ /* command line has precedence on config file */
+ if (loglevel)
+ loglevel_ce.u.value = loglevel;
+ loglevel_ce.flag |= CONFIG_FLAG_VAL_PROTECTED;
+
if (daemonize && verbose) {
verbose = 0;
ulogd_log(ULOGD_ERROR,
@@ -1204,7 +1215,7 @@ int main(int argc, char* argv[])
ulogd_configfile);
warn_and_exit(daemonize);
}
-
+
/* parse config file */
if (parse_conffile("global", &ulogd_kset)) {
ulogd_log(ULOGD_FATAL, "parse_conffile\n");