MADARA  3.2.3
Logger.h File Reference
#include "madara/MadaraExport.h"
#include "madara/LockType.h"
#include <vector>
#include <atomic>
#include <string>
#include <stdio.h>
#include "madara/utility/IntTypes.h"
#include "Logger.inl"

Go to the source code of this file.

Classes

class  madara::logger::Logger
 A multi-threaded logger for logging to one or more destinations. More...
 

Namespaces

 madara
 Copyright (c) 2015 Carnegie Mellon University.
 
 madara::logger
 Provides knowledge logging services to files and terminals.
 

Macros

#define madara_logger_cond_log(conditional, logger, alt_logger_ptr, level, ...)
 High-performance logger that performs conditional logging based on first arg. More...
 
#define madara_logger_cond_log_ptrs(conditional, logger_ptr, alt_logger_ptr, level, ...)
 High-performance logger that performs conditional logging based on first arg. More...
 
#define madara_logger_log(logger, level, ...)
 Fast version of the madara::logger::log method. More...
 
#define madara_logger_ptr_log(logger, level, ...)
 Fast version of the madara::logger::log method for Logger pointers. More...
 

Enumerations

enum  madara::logger::LogLevels {
  madara::logger::LOG_EMERGENCY = 0, madara::logger::LOG_ALWAYS = 0, madara::logger::LOG_ERROR = 1, madara::logger::LOG_WARNING = 2,
  madara::logger::LOG_MAJOR = 3, madara::logger::LOG_MINOR = 4, madara::logger::LOG_TRACE = 5, madara::logger::LOG_DETAILED = 6,
  madara::logger::LOG_MADARA_MAX = 6
}
 Logging levels available for MADARA library. More...
 

Macro Definition Documentation

#define madara_logger_cond_log (   conditional,
  logger,
  alt_logger_ptr,
  level,
  ... 
)
Value:
if (conditional && level <= logger.get_level ()) \
logger.log (level, __VA_ARGS__); \
else \
alt_logger_ptr->log (level, __VA_ARGS__);
Provides knowledge logging services to files and terminals.
Definition: GlobalLogger.h:11

High-performance logger that performs conditional logging based on first arg.

Parameters
conditionalthe primary logger pointer to use (if not null)
loggerthe logger that will be used if conditional is true
alt_logger_ptrthe secondary logger pointer to use (should be not null)
levelthe logging level

Definition at line 56 of file Logger.h.

#define madara_logger_cond_log_ptrs (   conditional,
  logger_ptr,
  alt_logger_ptr,
  level,
  ... 
)
Value:
if (conditional && logger_ptr && level <= logger_ptr->get_level ()) \
logger_ptr->log (level, __VA_ARGS__); \
else \
alt_logger_ptr->log (level, __VA_ARGS__);

High-performance logger that performs conditional logging based on first arg.

Parameters
conditionalthe primary logger pointer to use (if not null)
logger_ptrthe logger that will be used if conditional is true
alt_logger_ptrthe secondary logger pointer to use (should be not null)
levelthe logging level

Definition at line 43 of file Logger.h.

#define madara_logger_log (   logger,
  level,
  ... 
)
Value:
if (level <= logger.get_level ()) \
logger.log (level, __VA_ARGS__);
Provides knowledge logging services to files and terminals.
Definition: GlobalLogger.h:11

Fast version of the madara::logger::log method.

This macro uses compiler optimizations to ensure that args are not evaluated unless the level is appropriate for the loggers level. This makes logging transparent and minimally invasive, performance wise

Parameters
loggerthe logger instance to use
levelthe logging level

Definition at line 20 of file Logger.h.

#define madara_logger_ptr_log (   logger,
  level,
  ... 
)
Value:
if (logger && level <= logger->get_level ()) \
logger->log (level, __VA_ARGS__);
Provides knowledge logging services to files and terminals.
Definition: GlobalLogger.h:11

Fast version of the madara::logger::log method for Logger pointers.

This macro uses compiler optimizations to ensure that args are not evaluated unless the level is appropriate for the loggers level. This makes logging transparent and minimally invasive, performance wise

Parameters
loggerthe logger pointer to use
levelthe logging level

Definition at line 32 of file Logger.h.