From 1d63a898503d20e3221be43fc222f0091971a0ce Mon Sep 17 00:00:00 2001 From: Alan Conway Date: Wed, 30 May 2007 16:13:58 +0000 Subject: 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 --- cpp/src/qpid/log/Options.cpp | 69 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 cpp/src/qpid/log/Options.cpp (limited to 'cpp/src/qpid/log/Options.cpp') diff --git a/cpp/src/qpid/log/Options.cpp b/cpp/src/qpid/log/Options.cpp new file mode 100644 index 0000000000..3e117663ff --- /dev/null +++ b/cpp/src/qpid/log/Options.cpp @@ -0,0 +1,69 @@ +/* + * + * Copyright (c) 2006 The Apache Software Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#include "Options.h" +#include "Statement.h" +#include "qpid/CommonOptions.h" + +namespace qpid { +namespace log { + +using namespace std; + +Options::Options() : + time(true), level(true), thread(false), source(false), function(false) +{ + outputs.push_back("stderr"); + selectors.push_back("error+"); +} + +void Options::addTo(po::options_description& desc) { + using namespace po; + ostringstream levels; + levels << LevelTraits::name(Level(0)); + for (int i = 1; i < LevelTraits::COUNT; ++i) + levels << " " << LevelTraits::name(Level(i)); + desc.add_options() + ("log.enable", optValue(selectors, "RULE"), + "You can specify this option mutliple times.\n" + "RULE is of the form 'LEVEL[+][:COMPONENT]'" + "Levels are: trace, debug, info, notice, warning, error, critical." + "For example:\n" + "\t'--log.enable warning+' " + "enables all warning, error and critical messages.\n" + "\t'--log.enable debug:framing' " + "enables debug messages from the framing component.") + ("log.output", optValue(outputs, "FILE"), + "File to receive log output, or one of these special values: " + "'stderr', 'stdout', 'syslog'.") + ("log.time", optValue(time, "yes|no"), + "Include time in log messages") + ("log.level", optValue(level,"yes|no"), + "Include severity level in log messages") + ("log.source", optValue(source,"yes|no"), + "Include source file:line in log messages") + ("log.thread", optValue(thread,"yes|no"), + "Include thread ID in log messages") + ("log.function", optValue(function,"yes|no"), + "Include function signature in log messages"); + +} + + + +}} // namespace qpid::log -- cgit v1.2.1