17 #define dpm_strerror_r(errnum, buf, buflen) \
19 int old_errno = errno, cur_errno = errnum; \
20 char buffer[128], *msg = NULL; \
23 msg = strerror_r(cur_errno, buffer, sizeof(buffer)); \
25 strncpy(buf, msg, buflen); \
27 snprintf(buf, buflen, "Unknown error %d", errnum); \
28 buf[buflen-1] = '\0'; \
32 #define dpm_strerror_r(errnum, buf, buflen) \
34 int old_errno = errno, cur_errno = errnum, rc; \
36 rc = strerror_r(cur_errno, buf, buflen); \
42 snprintf(buf, buflen, "Unknown error %d", errnum); \
43 buf[buflen-1] = '\0'; \
51 #define SSTR(message) static_cast<std::ostringstream&>(std::ostringstream().flush() << message).str()
53 #define Log(lvl, mymask, where, what) \
55 if (Logger::get()->getLevel() >= lvl && Logger::get()->isLogged(mymask)) \
57 std::ostringstream outs; \
58 outs << "{" << pthread_self() << "}" << "[" << lvl << "] dmlite " << where << " " << __func__ << " : " << what; \
59 Logger::get()->log((Logger::Level)lvl, outs.str()); \
64 #define Err(where, what) \
66 std::ostringstream outs; \
67 outs << "{" << pthread_self() << "}" << "!!! dmlite " << where << " " << __func__ << " : " << what; \
68 Logger::get()->log((Logger::Level)0, outs.str()); \
153 void log(
Level lvl, std::string
const & msg)
const;
static void set(Logger *inst)
Definition: logger.h:111
static bitmask unregistered
Definition: logger.h:83
void registerComponents(std::vector< component > const &components)
std::map< component, bitmask > mapping
component name to bitmask mapping
Definition: logger.h:197
bitmask getMask(component const &comp)
static Logger * instance
Definition: logger.h:101
bool isLogged(bitmask m) const
Definition: logger.h:129
int size
number of components that were assigned with a bitmask
Definition: logger.h:193
void setLogged(component const &comp, bool tobelogged)
unsigned long long bitmask
typedef for a bitmask (long long)
Definition: logger.h:79
short level
current log level
Definition: logger.h:191
void logAll()
Definition: logger.h:159
Logger & operator=(Logger const &)
void setLevel(Level lvl)
Definition: logger.h:123
bitmask mask
global bitmask with all registered components
Definition: logger.h:195
std::string component
typedef for a component name (std:string)
Definition: logger.h:81
void LogCfgParm(int lvl, Logger::bitmask mymask, std::string where, std::string key, std::string value)
void registerComponent(component const &comp)
void log(Level lvl, std::string const &msg) const
Level
Definition: logger.h:88
Logger()
Private constructor.
short getLevel() const
Definition: logger.h:117
static char * unregisteredname
Definition: logger.h:84
static int getStackTrace(std::string &s)