Allow YAZ log level to be given for metaproxy prog
[metaproxy-moved-to-github.git] / src / metaproxy_prog.cpp
index b72a6ac..bfa1b77 100644 (file)
@@ -1,5 +1,5 @@
 /* This file is part of Metaproxy.
-   Copyright (C) 2005-2012 Index Data
+   Copyright (C) 2005-2013 Index Data
 
 Metaproxy is free software; you can redistribute it and/or modify it under
 the terms of the GNU General Public License as published by the Free
@@ -90,6 +90,9 @@ static void work_common(void *data)
     mp::Package pack;
     pack.router(*routerp).move();
     yaz_log(YLOG_LOG, "metaproxy stop"); /* only for graceful stop */
+#if HAVE_UNISTD_H
+    kill(-process_group, SIGTERM); /* kill all children processes as well */
+#endif
     _exit(0);
 }
 
@@ -121,7 +124,7 @@ static int sc_main(
 
     set_log_prefix();
 
-    while ((ret = options("c{config}:Dh{help}l:p:tu:V{version}w:X",
+    while ((ret = options("c{config}:Dh{help}l:m:p:tu:v:V{version}w:X",
                           argv, argc, &arg)) != -2)
     {
         switch (ret)
@@ -136,9 +139,11 @@ static int sc_main(
             std::cerr << "metaproxy\n"
                 " -h|--help     help\n"
                 " -V|--version  version\n"
+                " -v level\n"
                 " -c|--config f config filename\n"
                 " -D            daemon and keepalive operation\n"
                 " -l f          log file f\n"
+                " -m logformat  log time format (strftime)\n"
                 " -p f          pid file f\n"
                 " -t            test configuration\n"
                 " -u id         change uid to id\n"
@@ -154,6 +159,9 @@ static int sc_main(
         case 'l':
             yaz_log_init_file(arg);
             break;
+        case 'm':
+            yaz_log_time_format(arg);
+            break;
         case 'p':
             pidfile = arg;
             break;
@@ -163,6 +171,9 @@ static int sc_main(
         case 'u':
             uid = arg;
             break;
+        case 'v':
+            yaz_log_init_level(yaz_log_mask_str(arg));
+            break;
         case 'V':
             std::cout << VERSION;
 #ifdef VERSION_SHA1