Fawkes API  Fawkes Development Version
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
component.cpp
1 
2 /***************************************************************************
3  * component.cpp - Component logger
4  *
5  * Created: Wed Mar 12 23:46:34 2008
6  * Copyright 2006-2008 Tim Niemueller [www.niemueller.de]
7  *
8  ****************************************************************************/
9 
10 /* This program is free software; you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License as published by
12  * the Free Software Foundation; either version 2 of the License, or
13  * (at your option) any later version. A runtime exception applies to
14  * this software (see LICENSE.GPL_WRE file mentioned below for details).
15  *
16  * This program is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19  * GNU Library General Public License for more details.
20  *
21  * Read the full text in the LICENSE.GPL_WRE file in the doc directory.
22  */
23 
24 #include <logging/component.h>
25 #include <logging/logger.h>
26 
27 #include <cstring>
28 #include <cstdlib>
29 
30 namespace fawkes {
31 
32 /** @class ComponentLogger <logging/component.h>
33  * Component logger.
34  * This is a small wrapper around a logger to make it simpler to use in a
35  * single component. Once initialized it will only accept messages for a
36  * specific component string offers a simplified interface to logging methods.
37  *
38  * @author Tim Niemueller
39  */
40 
41 /** Constructor.
42  * @param logger logger to use
43  * @param component component string, copied to internal buffer
44  */
45 ComponentLogger::ComponentLogger(Logger *logger, const char *component)
46 {
47  __logger = logger;
48  __component = strdup(component);
49 }
50 
51 
52 /** Destructor. */
54 {
55  free(__component);
56 }
57 
58 
59 /** Log debug message.
60  * @param format format of the message, see man page of sprintf for available
61  * tokens.
62  */
63 void
64 ComponentLogger::log_debug(const char *format, ...)
65 {
66  va_list va;
67  va_start(va, format);
68  __logger->vlog_debug(__component, format, va);
69  va_end(va);
70 }
71 
72 
73 /** Log info message.
74  * @param format format of the message, see man page of sprintf for available
75  * tokens.
76  */
77 void
78 ComponentLogger::log_info(const char *format, ...)
79 {
80  va_list va;
81  va_start(va, format);
82  __logger->vlog_info(__component, format, va);
83  va_end(va);
84 }
85 
86 
87 /** Log warning message.
88  * @param format format of the message, see man page of sprintf for available
89  * tokens.
90  */
91 void
92 ComponentLogger::log_warn(const char *format, ...)
93 {
94  va_list va;
95  va_start(va, format);
96  __logger->vlog_warn(__component, format, va);
97  va_end(va);
98 }
99 
100 
101 /** Log error message.
102  * @param format format of the message, see man page of sprintf for available
103  * tokens.
104  */
105 void
106 ComponentLogger::log_error(const char *format, ...)
107 {
108  va_list va;
109  va_start(va, format);
110  __logger->vlog_error(__component, format, va);
111  va_end(va);
112 }
113 
114 
115 /** Log debug message.
116  * @param message message to log
117  */
118 void
119 ComponentLogger::log_debug(std::string message)
120 {
121  __logger->log_debug(__component, "%s", message.c_str());
122 }
123 
124 
125 /** Log info message.
126  * @param message message to log
127  */
128 void
129 ComponentLogger::log_info(std::string message)
130 {
131  __logger->log_info(__component, "%s", message.c_str());
132 }
133 
134 
135 /** Log warning message.
136  * @param message message to log
137  */
138 void
139 ComponentLogger::log_warn(std::string message)
140 {
141  __logger->log_warn(__component, "%s", message.c_str());
142 }
143 
144 
145 /** Log error message.
146  * @param message message to log
147  */
148 void
149 ComponentLogger::log_error(std::string message)
150 {
151  __logger->log_error(__component, "%s", message.c_str());
152 }
153 
154 
155 /** Log exception at debug log level.
156  * @param e exception to log, exception messages will be logged
157  */
158 void
160 {
161  __logger->log_debug(__component, e);
162 }
163 
164 
165 /** Log exception at info log level.
166  * @param e exception to log, exception messages will be logged
167  */
168 void
170 {
171  __logger->log_info(__component, e);
172 }
173 
174 
175 /** Log exception at warn log level.
176  * @param e exception to log, exception messages will be logged
177  */
178 void
180 {
181  __logger->log_warn(__component, e);
182 }
183 
184 
185 /** Log exception at error log level.
186  * @param e exception to log, exception messages will be logged
187  */
188 void
190 {
191  __logger->log_debug(__component, e);
192 }
193 
194 
195 } // end namespace fawkes