From: Shawn Routhier Date: Fri, 13 Feb 2015 03:13:59 +0000 (-0800) Subject: [trac3667] Make open virtual and update logging X-Git-Tag: trac3712_base~5^2~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8f672e354c5254adc7a7f2a994d3237812a10b0e;p=thirdparty%2Fkea.git [trac3667] Make open virtual and update logging By default log to syslog on local0. If the -d option is enabled log to the console. --- diff --git a/src/bin/lfc/lfc_controller.cc b/src/bin/lfc/lfc_controller.cc index f2bdbe58f7..767657c6ca 100644 --- a/src/bin/lfc/lfc_controller.cc +++ b/src/bin/lfc/lfc_controller.cc @@ -63,6 +63,20 @@ void LFCController::launch(int argc, char* argv[], const bool test_mode) { bool do_rotate = true; + // It would be nice to set up the logger as the first step + // in the process, but we don't know where to send logging + // info until after we have parsed our arguments. As we + // don't currently log anything when trying to parse the + // arguments we do the parse before the logging setup. If + // we do decide to log something then the code will need + // to move around a bit. + + try { + parseArgs(argc, argv); + } catch (const InvalidUsage& ex) { + usage(ex.what()); + throw; // rethrow it + } // If we are running in test mode use the environment variables // else use our defaults if (test_mode) { @@ -79,8 +93,14 @@ LFCController::launch(int argc, char* argv[], const bool test_mode) { keaLoggerSeverity(INFO), keaLoggerDbglevel(0)); - // We simply want the default syslog option - option.destination = OutputOption::DEST_SYSLOG; + // If we are running in verbose (debugging) mode + // we send the output to the console, otherwise + // by default we send it to the SYSLOG + if (verbose_) { + option.destination = OutputOption::DEST_CONSOLE; + } else { + option.destination = OutputOption::DEST_SYSLOG; + } // ... and set the destination spec.addOutputOption(option); @@ -88,19 +108,6 @@ LFCController::launch(int argc, char* argv[], const bool test_mode) { manager.process(spec); } - try { - parseArgs(argc, argv); - } catch (const InvalidUsage& ex) { - usage(ex.what()); - throw; // rethrow it - } - - // Now that we have parsed the arguments we can - // update the logging level. - if (verbose_) { - setDefaultLoggingOutput(verbose_); - } - LOG_INFO(lfc_logger, LFC_START); // verify we are the only instance diff --git a/src/lib/dhcpsrv/csv_lease_file4.h b/src/lib/dhcpsrv/csv_lease_file4.h index 94b45941af..21041defe6 100644 --- a/src/lib/dhcpsrv/csv_lease_file4.h +++ b/src/lib/dhcpsrv/csv_lease_file4.h @@ -56,7 +56,7 @@ public: /// statistics associated with any previous use of the file /// While it doesn't throw any exceptions of its own /// the base class may do so. - void open(); + virtual void open(); /// @brief Appends the lease record to the CSV file. /// diff --git a/src/lib/dhcpsrv/csv_lease_file6.h b/src/lib/dhcpsrv/csv_lease_file6.h index d5410faf5f..9e11e1179a 100644 --- a/src/lib/dhcpsrv/csv_lease_file6.h +++ b/src/lib/dhcpsrv/csv_lease_file6.h @@ -38,7 +38,7 @@ namespace dhcp { /// validation (see http://kea.isc.org/ticket/2405). However, when #2405 /// is implemented, the @c next function may need to be updated to use the /// validation capablity of @c Lease6. - class CSVLeaseFile6 : public isc::util::CSVFile, public LeaseFileStats { +class CSVLeaseFile6 : public isc::util::CSVFile, public LeaseFileStats { public: /// @brief Constructor. @@ -55,7 +55,7 @@ public: /// statistics associated with any previous use of the file /// While it doesn't throw any exceptions of its own /// the base class may do so. - void open(); + virtual void open(); /// @brief Appends the lease record to the CSV file. /// diff --git a/src/lib/util/csv_file.h b/src/lib/util/csv_file.h index 4f12ec34c7..4f900a5f36 100644 --- a/src/lib/util/csv_file.h +++ b/src/lib/util/csv_file.h @@ -390,7 +390,7 @@ public: /// be called. /// /// @throw CSVFileError when IO operation fails. - void open(); + virtual void open(); /// @brief Creates a new CSV file. ///