Added two configuration parameters:
authorarjen <arjen>
Tue, 5 Aug 2003 08:11:06 +0000 (08:11 +0000)
committerarjen <arjen>
Tue, 5 Aug 2003 08:11:06 +0000 (08:11 +0000)
   logfile   - Log to this file instead of stderr.
   verbosity - Verbose output if greater than 0.
Added '-i' option for incremental parameter updates

src/gcm_input/gcm_input.cpp

index 9e47d48..915934e 100644 (file)
@@ -7,7 +7,7 @@
 ***********************
 **      FILE NAME      : gcm_input.cpp
 **      SYSTEM NAME    : Gnucomo - Gnu Computer Monitoring
-**      VERSION NUMBER : $Revision: 1.4 $
+**      VERSION NUMBER : $Revision: 1.5 $
 **
 **  DESCRIPTION      :  Application to store client messages into the database
 **                      The client message contains a log file from one of the
@@ -34,6 +34,7 @@
 **                      -c <name>        Configuration name (default = gnucomo).
 **                      -d <date>        Date and time of log arrival.
 **                      -h <hostname>    FQDN of the client.
+**                      -i               Incremental - partial list of parameters.
 **                      -s <service>     Service that created the log.
 **                      -T               Test mode. Do not alter the database.
 **                      -v               Verbose (debug) output.
 ********************************
 **      ORIGINAL AUTHOR : Arjen Baart - arjen@andromeda.nl
 **      CREATION DATE   : Aug 29, 2002
-**      LAST UPDATE     : Mar 28, 2003
+**      LAST UPDATE     : Jul 24, 2003
 **      MODIFICATIONS   : 
 **************************************************************************/
 
 /*****************************
    $Log: gcm_input.cpp,v $
-   Revision 1.4  2003-03-29 08:42:00  arjen
+   Revision 1.5  2003-08-05 08:11:06  arjen
+   Added two configuration parameters:
+      logfile   - Log to this file instead of stderr.
+      verbosity - Verbose output if greater than 0.
+   Added '-i' option for incremental parameter updates
+
+   Revision 1.4  2003/03/29 08:42:00  arjen
    Exit without reading any input if the database connection fails.
 
    Revision 1.3  2002/11/09 08:04:27  arjen
@@ -67,7 +74,9 @@
 
 *****************************/
 
-static const char *RCSID = "$Id: gcm_input.cpp,v 1.4 2003-03-29 08:42:00 arjen Exp $";
+static const char *RCSID = "$Id: gcm_input.cpp,v 1.5 2003-08-05 08:11:06 arjen Exp $";
+
+#include <fstream>
 
 #include <getopt.h>
 
@@ -75,8 +84,10 @@ static const char *RCSID = "$Id: gcm_input.cpp,v 1.4 2003-03-29 08:42:00 arjen E
 
 bool verbose = false;
 bool testmode = false;
+bool incremental = false;
+std::ostream *log = &std::cerr;
 
-static char *Version = "gcm_input version 0.0.4 - Nov 05, 2002";
+static char *Version = "gcm_input version 0.0.7 - Jul 24, 2003";
 
 
 /*=========================================================================
@@ -94,17 +105,19 @@ static char *Version = "gcm_input version 0.0.4 - Nov 05, 2002";
 **  VARS CHANGED   :
 **  FUNCTIONS USED :
 **  SEE ALSO       :
-**  LAST MODIFIED  : Mar 28, 2003
+**  LAST MODIFIED  : Jul 24, 2003
 **=========================================================================
 */
 
 int main(int argc, char *argv[])
 {
-   const char *usage = "Usage: gcm_input [-c configname] [-h hostname] [-d date]"
+   const char *usage = "Usage: gcm_input [-c configname] [-h hostname] [-i] [-d date]"
                        " [-s service] [-T] [-v] [-V]\n";
 
    gnucomo_config    cfg;
    char             *config_name = "gnucomo";
+   std::ofstream    logfile;
+
 
    /*   Parse command line arguments */
 
@@ -113,7 +126,7 @@ int main(int argc, char *argv[])
    int     option;
 
 
-   while ((option = getopt(argc, argv, "c:h:d:s:TvV")) != -1)
+   while ((option = getopt(argc, argv, "c:h:d:s:iTvV")) != -1)
    {
       switch (option)
       {
@@ -138,6 +151,10 @@ int main(int argc, char *argv[])
          service = optarg;
          break;
 
+      case 'i':
+         incremental = true;
+         break;
+
       case 'T':
          testmode = true;
          break;
@@ -156,13 +173,6 @@ int main(int argc, char *argv[])
          exit(1);
       }
    }
-   if (verbose)
-   {
-      std::cout << "Hostname = " << hostname;
-      std::cout << " Arrival = " << arrival;
-      std::cout << " Service = " << service << "\n";
-   }
-
    /*  Get the configuration file */
 
    if (!cfg.read(config_name))
@@ -171,9 +181,33 @@ int main(int argc, char *argv[])
       exit(1);
    }
 
+   String logfile_name = cfg.find_parameter("gcm_input", "logfile");
+   int    verbosity    = cfg.find_parameter("gcm_input", "verbosity");
+
+   if (logfile_name != "")
+   {
+      std::cerr << "Logging to " << logfile_name << ".\n";
+      logfile.open(logfile_name, _IO_APPEND); // for gcc 2
+      //logfile.open(logfile_name, std::ios_base::app); // for gcc 3
+      if (!logfile)
+      {
+         std::cerr << "Can't open logfile " << logfile_name << " for writing.\n";
+      }
+      else
+      {
+         log = &logfile;
+         verbose = verbose || verbosity > 0;
+      }
+   }
+
+   *log << "Gcm_input starting at " << Now() << ".\n";
+
    if (verbose)
    {
-      std::cout << "Config OK.\n";
+      *log << "Hostname = " << hostname;
+      *log << " Arrival = " << arrival;
+      *log << " Service = " << service << "\n";
+      *log << "Config OK.\n";
    }
 
    /*  Try to connect to the database */
@@ -189,11 +223,13 @@ int main(int argc, char *argv[])
       {
          msg.enter();
       }
+      *log << "Gcm_input finished at " << Now() << ".\n";
       return 0;
    }
    else
    {
-      std::cerr << "gcm_input: Can not connect to database.\n";
+      *log << "gcm_input: Can not connect to database.\n";
+      *log << "Gcm_input finished at " << Now() << ".\n";
       return 1;
    }
 }