diff options
Diffstat (limited to 'qpid/cpp/include/qpid/messaging/Logger.h')
-rw-r--r-- | qpid/cpp/include/qpid/messaging/Logger.h | 165 |
1 files changed, 0 insertions, 165 deletions
diff --git a/qpid/cpp/include/qpid/messaging/Logger.h b/qpid/cpp/include/qpid/messaging/Logger.h deleted file mode 100644 index 39518e01d4..0000000000 --- a/qpid/cpp/include/qpid/messaging/Logger.h +++ /dev/null @@ -1,165 +0,0 @@ -#ifndef QPID_MESSAGING_LOGGING_H -#define QPID_MESSAGING_LOGGING_H - -/* - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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 "qpid/messaging/ImportExport.h" - -#include <string> - -namespace qpid { -namespace messaging { -/** - * These log levels need to be kept in sync with the log levels - * defined internally in qpid::log (but I don't think they are likely - * to change anyway - */ -enum Level { trace, debug, info, notice, warning, error, critical }; - -/** \ingroup messaging - * Interface class to allow redirection of log output - */ -class QPID_MESSAGING_CLASS_EXTERN LoggerOutput -{ -public: - QPID_MESSAGING_EXTERN virtual ~LoggerOutput(); - - /** - * Override this member function to receive log messages. - * - * log() will be called for every log message that would be output from the qpid::messaging - * logging subsystem after applying the specified logging filters. - * - * The logging subsystem ensures that log() will not be called simultaneously in different threads. - * @param level The severity of the log message can be (in order of severity) - * trace, debug, info, notice, warning, error, critical - * @param user Flag which is set if the log message came from the user application ( using qpid::messaging::Logger::log() ) - * (if not set then the message comes from the qpid library) - * @param file The source code file name reported as the origin of the log message - * @param line The source code line number reported as the origin of the log message - * @param function The source code function reported as the origin of the log message - * @param message The log message - */ - virtual void log(Level level, bool user, const char* file, int line, const char* function, const std::string& message) = 0; -}; - -/** \ingroup messaging - * A utility class to allow the application to control the logging - * output of the qpid messaging library - * - * This class represents a singleton logging facility within the qpid messaging library so there are only static - * methods in the class - */ -class QPID_MESSAGING_CLASS_EXTERN Logger -{ -public: - /** - * Configure the logging subsystem - * - * This function takes an array of text options (which could easily come from a programs - * command line) and uses them to configure the logging subsystem. - * - * If the prefix parameter is specified then the accepted command line options are prefixed - * by <<prefix>>- for example if the prefix is "qpid" then the options all start "--qpid-log..." - * - * Accepted options are: - * --log-enable RULE - * --log-disable RULE - * - * Both --log-enable and --log-disable can be specified multiple times in a single command line. - * The enables are acted upon and after them the disables are acted upon. - * - * RULE is in the form LEVEL[("+"|"-")][:PATTERN] - * LEVEL is one of "trace", "debug", "info", "notice", "warning", "error", "critical" - * "+" operates on the level and all higher levels - * "-" operates on the level and all lower levels - * PATTERN is a category name or a fragment of a fully namespace qualified function (Case sensitive). - * - * --log-to-stdout ("on"|"off|"0"|"1") - * --log-to-stderr ("on"|"off|"0"|"1") - * --log-to-file FILENAME - * - * These options control where the qpid logging subsystem sends log messages - * - * --log-time ("on"|"off|"0"|"1") - * --log-level ("on"|"off|"0"|"1") - * --log-source ("on"|"off|"0"|"1") - * --log-thread ("on"|"off|"0"|"1") - * --log-function ("on"|"off|"0"|"1") - * --log-hires-timestamp ("on"|"off|"0"|"1") - * - * These options control what information is included in the logging message sent by the logging subsystem. - * - * @param argc count of options - identical to meaning for main(). - * @param argv array of pointers to options - identical to meaning for main(). - * @param prefix (optional) If present prefix all logging options with this string - * @throws MessagingException if it cannot parse an option it recognises - */ - QPID_MESSAGING_EXTERN static void configure(int argc, const char* argv[], const std::string& prefix=std::string()); - - /** - * Get a user friendly usage message. - * - * This returns a usage message that is suitable for outputting directly to - * a console user. The message only contains the command line options that - * are understood by qpid::messaging::Logger::configure(). - * - * NB. You must call qpid::messaging::Logger::configure() before calling this - * to populate the usage string as the usage string depends on the prefix that - * is passed in to qpid::messaging::Logger::configure(). - * - * @return string containing the usage message for the command line options - */ - QPID_MESSAGING_EXTERN static std::string usage(); - - /** - * Register a custom handler for log messages - * - * This allows application programs to intercept the log messages coming from qpid::messaging - * and handle them in whatever way is consonent with the applications own handling of - * log messages. - * - * In order to do this create a class that inherits from qpid::messaging::LoggerOutput - * and override the log() member function. - */ - QPID_MESSAGING_EXTERN static void setOutput(LoggerOutput& output); - - /** - * Output a log message. This will get sent to all the specified logging outputs including any - * the application has registered. The message will get filtered along with the internal messages - * according to the specified logging filters. - * - * When a log message output using log() is received by a LoggerOutput::log() method the "user" bool parameter will be set true. - */ - QPID_MESSAGING_EXTERN static void log(Level level, const char* file, int line, const char* function, const std::string& message); - -private: - //This class has only one instance so no need to copy - Logger(); - ~Logger(); - - Logger(const Logger&); - Logger operator=(const Logger&); -}; -}} // namespace qpid::messaging - -#endif /*!QPID_MESSAGING_LOGGING_H*/ |