Kea  1.5.0
logger_impl.h
Go to the documentation of this file.
1 // Copyright (C) 2011-2015 Internet Systems Consortium, Inc. ("ISC")
2 //
3 // This Source Code Form is subject to the terms of the Mozilla Public
4 // License, v. 2.0. If a copy of the MPL was not distributed with this
5 // file, You can obtain one at http://mozilla.org/MPL/2.0/.
6 
7 #ifndef LOGGER_IMPL_H
8 #define LOGGER_IMPL_H
9 
10 #include <stdarg.h>
11 #include <time.h>
12 
13 #include <iostream>
14 #include <cstdlib>
15 #include <string>
16 #include <map>
17 #include <utility>
18 #include <boost/noncopyable.hpp>
19 
20 
21 // log4cplus logger header file
22 #include <log4cplus/logger.h>
23 
24 // Kea logger files
25 #include <log/logger_level_impl.h>
26 #include <log/message_types.h>
28 
29 namespace isc {
30 namespace log {
31 
56 
57 class LoggerImpl : public boost::noncopyable {
58 public:
59 
65  LoggerImpl(const std::string& name);
66 
67 
69  virtual ~LoggerImpl();
70 
71 
73  static std::string getVersion();
74 
75 
77  virtual std::string getName() {
78  return (name_);
79  }
80 
81 
91  virtual void setSeverity(Severity severity, int dbglevel = 1);
92 
93 
98  virtual Severity getSeverity();
99 
100 
106  virtual Severity getEffectiveSeverity();
107 
108 
113  virtual int getDebugLevel();
114 
115 
120  virtual int getEffectiveDebugLevel();
121 
122 
128  virtual bool isDebugEnabled(int dbglevel = MIN_DEBUG_LEVEL) {
129  Level level(DEBUG, dbglevel);
130  return logger_.isEnabledFor(LoggerLevelImpl::convertFromBindLevel(level));
131  }
132 
134  virtual bool isInfoEnabled() {
135  return (logger_.isEnabledFor(log4cplus::INFO_LOG_LEVEL));
136  }
137 
139  virtual bool isWarnEnabled() {
140  return (logger_.isEnabledFor(log4cplus::WARN_LOG_LEVEL));
141  }
142 
144  virtual bool isErrorEnabled() {
145  return (logger_.isEnabledFor(log4cplus::ERROR_LOG_LEVEL));
146  }
147 
149  virtual bool isFatalEnabled() {
150  return (logger_.isEnabledFor(log4cplus::FATAL_LOG_LEVEL));
151  }
152 
161  void outputRaw(const Severity& severity, const std::string& message);
162 
166  std::string* lookupMessage(const MessageID& id);
167 
178 
185  bool operator==(const LoggerImpl& other) {
186  return (name_ == other.name_);
187  }
188 
189 private:
190  std::string name_;
191  log4cplus::Logger logger_;
193 };
194 
195 } // namespace log
196 } // namespace isc
197 
198 
199 #endif // LOGGER_IMPL_H
isc::log::interprocess::InterprocessSync
Interprocess Sync Class.
Definition: interprocess_sync.h:38
isc::log::LoggerImpl::isWarnEnabled
virtual bool isWarnEnabled()
Is WARNING Enabled?
Definition: logger_impl.h:139
isc::log::LoggerImpl::getVersion
static std::string getVersion()
Version.
Definition: logger_impl.cc:85
isc::log::LoggerImpl::setInterprocessSync
void setInterprocessSync(isc::log::interprocess::InterprocessSync *sync)
Replace the interprocess synchronization object.
Definition: logger_impl.cc:140
isc::log::LoggerImpl::setSeverity
virtual void setSeverity(Severity severity, int dbglevel=1)
Set Severity Level for Logger.
Definition: logger_impl.cc:94
isc::log::Severity
Severity
Severity Levels.
Definition: logger_level.h:23
isc::log::LoggerImpl::getDebugLevel
virtual int getDebugLevel()
Return debug level.
Definition: logger_impl.cc:108
isc::log::LoggerImpl::isFatalEnabled
virtual bool isFatalEnabled()
Is FATAL Enabled?
Definition: logger_impl.h:149
isc::log::Level
Log level structure.
Definition: logger_level.h:42
isc::log::LoggerImpl::outputRaw
void outputRaw(const Severity &severity, const std::string &message)
Raw output.
Definition: logger_impl.cc:152
isc
Defines the logger used by the top-level component of kea-dhcp-ddns.
Definition: agent_parser.cc:144
isc::log::LoggerImpl::getSeverity
virtual Severity getSeverity()
Get Severity Level for Logger.
Definition: logger_impl.cc:101
isc::log::LoggerImpl
Console Logger Implementation.
Definition: logger_impl.h:57
interprocess_sync.h
isc::log::DEBUG
@ DEBUG
Definition: logger_level.h:25
isc::log::LoggerImpl::operator==
bool operator==(const LoggerImpl &other)
Equality.
Definition: logger_impl.h:185
message_types.h
isc::log::LoggerImpl::isDebugEnabled
virtual bool isDebugEnabled(int dbglevel=MIN_DEBUG_LEVEL)
Returns if Debug Message Should Be Output.
Definition: logger_impl.h:128
isc::log::LoggerImpl::getEffectiveSeverity
virtual Severity getEffectiveSeverity()
Get Effective Severity Level for Logger.
Definition: logger_impl.cc:116
isc::log::LoggerImpl::LoggerImpl
LoggerImpl(const std::string &name)
Constructor.
Definition: logger_impl.cc:66
logger_level_impl.h
isc::log::LoggerImpl::~LoggerImpl
virtual ~LoggerImpl()
Destructor.
Definition: logger_impl.cc:79
isc::log::MessageID
const char * MessageID
Definition: message_types.h:15
isc::log::LoggerImpl::lookupMessage
std::string * lookupMessage(const MessageID &id)
Look up message text in dictionary.
Definition: logger_impl.cc:132
isc::log::LoggerImpl::getEffectiveDebugLevel
virtual int getEffectiveDebugLevel()
Return effective debug level.
Definition: logger_impl.cc:124
isc::log::LoggerImpl::isErrorEnabled
virtual bool isErrorEnabled()
Is ERROR Enabled?
Definition: logger_impl.h:144
isc::log::LoggerImpl::isInfoEnabled
virtual bool isInfoEnabled()
Is INFO Enabled?
Definition: logger_impl.h:134
isc::log::LoggerLevelImpl::convertFromBindLevel
static log4cplus::LogLevel convertFromBindLevel(const isc::log::Level &level)
Convert Kea level to log4cplus logging level.
Definition: logger_level_impl.cc:33
isc::log::LoggerImpl::getName
virtual std::string getName()
Get the full name of the logger (including the root name)
Definition: logger_impl.h:77
isc::log::MIN_DEBUG_LEVEL
const int MIN_DEBUG_LEVEL
Minimum/maximum debug levels.
Definition: logger_level.h:35