component.cpp

00001 
00002 /***************************************************************************
00003  *  component.cpp - Component logger
00004  *
00005  *  Created: Wed Mar 12 23:46:34 2008
00006  *  Copyright  2006-2008  Tim Niemueller [www.niemueller.de]
00007  *
00008  ****************************************************************************/
00009 
00010 /*  This program is free software; you can redistribute it and/or modify
00011  *  it under the terms of the GNU General Public License as published by
00012  *  the Free Software Foundation; either version 2 of the License, or
00013  *  (at your option) any later version. A runtime exception applies to
00014  *  this software (see LICENSE.GPL_WRE file mentioned below for details).
00015  *
00016  *  This program is distributed in the hope that it will be useful,
00017  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00018  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00019  *  GNU Library General Public License for more details.
00020  *
00021  *  Read the full text in the LICENSE.GPL_WRE file in the doc directory.
00022  */
00023 
00024 #include <utils/logging/component.h>
00025 #include <utils/logging/logger.h>
00026 
00027 #include <cstring>
00028 #include <cstdlib>
00029 
00030 namespace fawkes {
00031 
00032 /** @class ComponentLogger <logging/component.h>
00033  * Component logger.
00034  * This is a small wrapper around a logger to make it simpler to use in a
00035  * single component. Once initialized it will only accept messages for a
00036  * specific component string offers a simplified interface to logging methods.
00037  *
00038  * @author Tim Niemueller
00039  */
00040 
00041 /** Constructor.
00042  * @param logger logger to use
00043  * @param component component string, copied to internal buffer
00044  */
00045 ComponentLogger::ComponentLogger(Logger *logger, const char *component)
00046 {
00047   __logger = logger;
00048   __component = strdup(component);
00049 }
00050 
00051 
00052 /** Destructor. */
00053 ComponentLogger::~ComponentLogger()
00054 {
00055   free(__component);
00056 }
00057 
00058 
00059 /** Log debug message.
00060  * @param format format of the message, see man page of sprintf for available
00061  * tokens.
00062  */
00063 void
00064 ComponentLogger::log_debug(const char *format, ...)
00065 {
00066   va_list va;
00067   va_start(va, format);
00068   __logger->vlog_debug(__component, format, va);
00069   va_end(va);
00070 }
00071 
00072 
00073 /** Log info message.
00074  * @param format format of the message, see man page of sprintf for available
00075  * tokens.
00076  */
00077 void
00078 ComponentLogger::log_info(const char *format, ...)
00079 {
00080   va_list va;
00081   va_start(va, format);
00082   __logger->vlog_info(__component, format, va);
00083   va_end(va);
00084 }
00085 
00086 
00087 /** Log warning message.
00088  * @param format format of the message, see man page of sprintf for available
00089  * tokens.
00090  */
00091 void
00092 ComponentLogger::log_warn(const char *format, ...)
00093 {
00094   va_list va;
00095   va_start(va, format);
00096   __logger->vlog_warn(__component, format, va);
00097   va_end(va);
00098 }
00099 
00100 
00101 /** Log error message.
00102  * @param format format of the message, see man page of sprintf for available
00103  * tokens.
00104  */
00105 void
00106 ComponentLogger::log_error(const char *format, ...)
00107 {
00108   va_list va;
00109   va_start(va, format);
00110   __logger->vlog_error(__component, format, va);
00111   va_end(va);
00112 }
00113 
00114 
00115 /** Log debug message.
00116  * @param message message to log
00117  */
00118 void
00119 ComponentLogger::log_debug(std::string message)
00120 {
00121   __logger->log_debug(__component, "%s", message.c_str());
00122 }
00123 
00124 
00125 /** Log info message.
00126  * @param message message to log
00127  */
00128 void
00129 ComponentLogger::log_info(std::string message)
00130 {
00131   __logger->log_info(__component, "%s", message.c_str());
00132 }
00133 
00134 
00135 /** Log warning message.
00136  * @param message message to log
00137  */
00138 void
00139 ComponentLogger::log_warn(std::string message)
00140 {
00141   __logger->log_warn(__component, "%s", message.c_str());
00142 }
00143 
00144 
00145 /** Log error message.
00146  * @param message message to log
00147  */
00148 void
00149 ComponentLogger::log_error(std::string message)
00150 {
00151   __logger->log_error(__component, "%s", message.c_str());
00152 }
00153 
00154 
00155 /** Log exception at debug log level.
00156  * @param e exception to log, exception messages will be logged
00157  */
00158 void
00159 ComponentLogger::log_debug(Exception &e)
00160 {
00161   __logger->log_debug(__component, e);
00162 }
00163 
00164 
00165 /** Log exception at info log level.
00166  * @param e exception to log, exception messages will be logged
00167  */
00168 void
00169 ComponentLogger::log_info(Exception &e)
00170 {
00171   __logger->log_info(__component, e);
00172 }
00173 
00174 
00175 /** Log exception at warn log level.
00176  * @param e exception to log, exception messages will be logged
00177  */
00178 void
00179 ComponentLogger::log_warn(Exception &e)
00180 {
00181   __logger->log_warn(__component, e);
00182 }
00183 
00184 
00185 /** Log exception at error log level.
00186  * @param e exception to log, exception messages will be logged
00187  */
00188 void
00189 ComponentLogger::log_error(Exception &e)
00190 {
00191   __logger->log_debug(__component, e);
00192 }
00193 
00194 
00195 } // end namespace fawkes

Generated on 1 Mar 2011 for Fawkes API by  doxygen 1.6.1