From patchwork Sat Jan 19 09:50:35 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eric Leblond X-Patchwork-Id: 213804 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id E43F12C007C for ; Sat, 19 Jan 2013 20:51:27 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751910Ab3ASJvX (ORCPT ); Sat, 19 Jan 2013 04:51:23 -0500 Received: from ks28632.kimsufi.com ([91.121.96.152]:37664 "EHLO ks28632.kimsufi.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751906Ab3ASJvR (ORCPT ); Sat, 19 Jan 2013 04:51:17 -0500 Received: from ip-37-24-162-232.unitymediagroup.de ([37.24.162.232] helo=localhost.localdomain) by ks28632.kimsufi.com with esmtpsa (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.72) (envelope-from ) id 1TwV52-0006BF-Oc; Sat, 19 Jan 2013 10:51:16 +0100 From: Eric Leblond To: netfilter-devel@vger.kernel.org Cc: eric@regit.org Subject: [PATCH 3/3] Add -l option to set log level from command line Date: Sat, 19 Jan 2013 10:50:35 +0100 Message-Id: <1358589035-1275-4-git-send-email-eric@regit.org> X-Mailer: git-send-email 1.7.10.4 In-Reply-To: <1358589035-1275-1-git-send-email-eric@regit.org> References: <1358589035-1275-1-git-send-email-eric@regit.org> Sender: netfilter-devel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netfilter-devel@vger.kernel.org This patch adds a '-l' option which can be used to setup ulogd loglevel. Command line option has precedence on the configuration file one. Signed-off-by: Eric Leblond --- src/ulogd.c | 15 +++++++++++++-- ulogd.conf.in | 4 ++-- 2 files changed, 15 insertions(+), 4 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"); diff --git a/ulogd.conf.in b/ulogd.conf.in index 783cb2b..d5db77b 100644 --- a/ulogd.conf.in +++ b/ulogd.conf.in @@ -11,8 +11,8 @@ # logfile for status messages logfile="/var/log/ulogd.log" -# loglevel: debug(1), info(3), notice(5), error(7) or fatal(8) -loglevel=1 +# loglevel: debug(1), info(3), notice(5), error(7) or fatal(8) (default 5) +# loglevel=1 ###################################################################### # PLUGIN OPTIONS