diff options
author | Alan Conway <aconway@apache.org> | 2007-05-30 16:13:58 +0000 |
---|---|---|
committer | Alan Conway <aconway@apache.org> | 2007-05-30 16:13:58 +0000 |
commit | 1d63a898503d20e3221be43fc222f0091971a0ce (patch) | |
tree | 78d8673b9ed8820e431b6a6f353ba0143adeb800 /cpp/src/qpid/CommonOptions.cpp | |
parent | f2b034ea3f4fa70e512fafdf18fd42c370194329 (diff) | |
download | qpid-python-1d63a898503d20e3221be43fc222f0091971a0ce.tar.gz |
Logging infrastructure: See qpidd --long-help for details.
* src/qpid/log/*: Logging infrastructure, QPID_LOG macro.
* src/*: changed output to cout/cerr to logging.
* src/qpidd.cpp: logging options.
* src/tests/Makefile.am: fixed issues with valgrind
* src/tests/kill|start_broker: use broker daemon options.
* src/tests/run_test: run tests in valgrind. Disabled till leaks in
client_test are fixed.
* src/test/unit/logging.cpp: Logging unit test using boost test framework.
Eventually we should move all unit tests to boost & drop CppUnit.
* src/test/unit/test_tools.h: useful extensions to boost framework:
Regular expression check, ostream << for vectors.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@542855 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/CommonOptions.cpp')
-rw-r--r-- | cpp/src/qpid/CommonOptions.cpp | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/cpp/src/qpid/CommonOptions.cpp b/cpp/src/qpid/CommonOptions.cpp index f272c71a27..2224f0e75b 100644 --- a/cpp/src/qpid/CommonOptions.cpp +++ b/cpp/src/qpid/CommonOptions.cpp @@ -17,6 +17,7 @@ */ #include "CommonOptions.h" +#include "qpid/Exception.h" #include <fstream> #include <algorithm> #include <iostream> @@ -39,6 +40,10 @@ std::string env2option(const std::string& env) { return std::string(); } +std::string prettyArg(const std::string& name, const std::string& value) { + return value.empty() ? name : name+" (="+value+")"; +} + } // namespace program_options const int CommonOptions::DEFAULT_PORT=5672; @@ -69,13 +74,19 @@ void parseOptions( throw po::error(std::string("parsing environment variables: ") + e.what()); } - po::notify(vm); // So we can use the value of config. - try { - std::ifstream conf(configFile.c_str()); - po::store(po::parse_config_file(conf, desc), vm); - } - catch (const po::error& e) { - throw po::error(std::string("parsing config file: ")+ e.what()); + po::notify(vm); // configFile may be updated from arg/env options. + if (!configFile.empty()) { + try { + using namespace std; + ifstream conf(configFile.c_str()); + if (conf.good()) { + conf.exceptions(ifstream::failbit|ifstream::badbit); + po::store(po::parse_config_file(conf, desc), vm); + } + } + catch (const std::exception& e) { + throw Exception(std::string("error parsing config file: ")+ e.what()); + } } po::notify(vm); } |