Allow yaz_log time-stamp format to be set MP-430
[metaproxy-moved-to-github.git] / src / metaproxy_prog.cpp
index 19434be..6f48973 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{version}w:X",
                           argv, argc, &arg)) != -2)
     {
         switch (ret)
@@ -139,6 +142,7 @@ static int sc_main(
                 " -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 +158,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;
@@ -197,11 +204,11 @@ static int sc_main(
         return 1;
     }
 
-    if (!test_config)
-        yaz_log(YLOG_LOG, "metaproxy start " VERSION
+    yaz_log(YLOG_LOG, "metaproxy %s " VERSION
 #ifdef VERSION_SHA1
                 " " VERSION_SHA1
 #endif
+        , test_config ? "test" : "start"
             );
 
     yaz_log_xml_errors(0, YLOG_LOG);
@@ -261,6 +268,8 @@ static int sc_main(
         ret = 1;
     }
     xmlFreeDoc(doc);
+    if (test_config)
+        yaz_log(YLOG_LOG, "metaproxy test exit code %d", ret);
     return ret;
 }