CARMA C++
Logger.h
1 #ifndef CARMA_UTIL_LOGGER_H
2 #define CARMA_UTIL_LOGGER_H
3 
9 // Include commonly-used log4cpp appenders, so that client
10 // programs don't need to include them.
11 #include <log4cpp/Category.hh>
12 #include <log4cpp/FileAppender.hh>
13 #include <log4cpp/Layout.hh>
14 #include <log4cpp/SimpleLayout.hh>
15 #include <log4cpp/NDC.hh>
16 #include <log4cpp/Portability.hh>
17 #include <log4cpp/Priority.hh>
18 #include <log4cpp/OstreamAppender.hh>
19 #include <log4cpp/RemoteSyslogAppender.hh>
20 #include <log4cpp/SyslogAppender.hh>
21 #include <log4cpp/TimeStamp.hh>
22 
23 #include <syslog.h>
24 
25 #include "carma/util/FacilityType.h"
26 
27 namespace carma {
28  namespace util {
29 
34  class Logger
35  {
36 
37  public:
38 
40  virtual ~Logger();
41 
106  static log4cpp::Category&
107  getSyslogger(const std::string& identity,
108  const std::string& host = "localhost",
109  const std::string& logname = "carma.default",
110  log4cpp::Priority::PriorityLevel priority =
111  log4cpp::Priority::DEBUG,
112  facilityType facility = DEFAULT_FACILITY);
113 
114 
115 
152  static log4cpp::Category&
153  getFilelogger(const std::string& identity,
154  const std::string& pathname,
155  const std::string& logname = "carma.default",
156  bool append = true,
157  mode_t mode = 00644,
158  log4cpp::Priority::PriorityLevel priority =
159  log4cpp::Priority::DEBUG,
160  bool traceVerbose = true );
161 
162 
189  static log4cpp::Category&
190  getOstreamlogger(const std::string& identity,
191  std::ostream *stream = &std::cout,
192  const std::string& logname = "carma.default",
193  log4cpp::Priority::PriorityLevel priority =
194  log4cpp::Priority::DEBUG,
195  bool traceVerbose = true );
196 
197  };
198 
199 
203  class SyslogLayout : public log4cpp::Layout
204  {
205 
206  public:
207 
209  SyslogLayout();
210 
212  virtual ~SyslogLayout();
213 
235  virtual std::string format(const log4cpp::LoggingEvent& event);
236 
237  };
238 
239 
243  class FileLayout : public log4cpp::Layout
244  {
245 
246  public:
247 
249  FileLayout();
250 
252  virtual ~FileLayout();
253 
271  virtual std::string format(const log4cpp::LoggingEvent& event);
272 
273  };
274 
278  class VerySimpleLayout : public log4cpp::Layout
279  {
280 
281  public:
282 
285 
287  virtual ~VerySimpleLayout();
288 
304  virtual std::string format(const log4cpp::LoggingEvent& event);
305 
306  };
307  }
308 }
309 #endif // CARMA_UTIL_LOGGER_H
virtual ~FileLayout()
Destructor for FileLayout.
static log4cpp::Category & getFilelogger(const std::string &identity, const std::string &pathname, const std::string &logname="carma.default", bool append=true, mode_t mode=00644, log4cpp::Priority::PriorityLevel priority=log4cpp::Priority::DEBUG, bool traceVerbose=true)
virtual ~VerySimpleLayout()
Destructor for VerySimpleLayout.
static log4cpp::Category & getOstreamlogger(const std::string &identity, std::ostream *stream=&std::cout, const std::string &logname="carma.default", log4cpp::Priority::PriorityLevel priority=log4cpp::Priority::DEBUG, bool traceVerbose=true)
Syslog layout class for CARMA logging.
Definition: Logger.h:203
File layout class for CARMA logging.
Definition: Logger.h:243
virtual std::string format(const log4cpp::LoggingEvent &event)
Formats the LoggingEvent in FileLayout style: &quot;Time {Priority} {Category} {Nested Diagnostic Context...
static log4cpp::Category & getSyslogger(const std::string &identity, const std::string &host="localhost", const std::string &logname="carma.default", log4cpp::Priority::PriorityLevel priority=log4cpp::Priority::DEBUG, facilityType facility=DEFAULT_FACILITY)
virtual std::string format(const log4cpp::LoggingEvent &event)
Formats the LoggingEvent in VerySimpleLayout style: &quot;Name:NN: Message&quot; where Name is the file name...
A convenience class for returning predefined log4cpp Categories.
Definition: Logger.h:34
FileLayout()
Default constructor for FileLayout.
Very Simple layout class for CARMA tracing.
Definition: Logger.h:278
virtual std::string format(const log4cpp::LoggingEvent &event)
Formats the LoggingEvent in SyslogLayout style: "Time Identity: {Year} {Priority} {Category} {Nested...
facilityType
A type for syslog facilities.
Definition: FacilityType.h:15
virtual ~Logger()
The destructor for Logger.
SyslogLayout()
Default constructor for SyslogLayout.
VerySimpleLayout()
Default constructor for VerySimpleLayout.
virtual ~SyslogLayout()
Destructor for SyslogLayout.