KrisLibrary  1.0.0
Macros | Typedefs | Functions
Logger.h File Reference

The logging system used in KrisLibrary. More...

#include <iostream>
#include <stdlib.h>

Go to the source code of this file.

Macros

#define LOG4CXX_DEBUG(logger, data)
 
#define LOG4CXX_INFO(logger, data)
 
#define LOG4CXX_WARN(logger, data)
 
#define LOG4CXX_ERROR(logger, data)
 
#define LOG4CXX_FATAL(logger, data)
 
#define DEFINE_LOGGER(name)
 Use this inside a cpp file to define a fast logger. More...
 
#define DECLARE_LOGGER(name)
 Use to declare that you will use a fast logger (only needed if you will share a fast logger between cpp files) More...
 
#define GET_LOGGER(name)   KrisLibrary::_get_logger_##name()
 Use this to retrieve a fast logger.
 

Typedefs

typedef const char * KrisLibrary::LoggerType
 

Functions

LoggerType KrisLibrary::logger ()
 Retrieves the base logger. More...
 
LoggerType KrisLibrary::logger (const char *name)
 Retrieves a named logger. More...
 
void KrisLibrary::loggerWait ()
 If the root logger is enabled for debug level, this will cause a getchar() to be called.
 
void KrisLibrary::loggerWait (LoggerType logger)
 If logger is enabled for debug level, this will cause a getchar() to be called.
 

Detailed Description

The logging system used in KrisLibrary.

Log4cxx will be used if present. Otherwise, LOG4CXX macros will be defined just to print to stdout (INFO and WARN) or stderr

Macro Definition Documentation

#define DECLARE_LOGGER (   name)
Value:
namespace KrisLibrary { \
extern LoggerType _logger_##name; \
inline LoggerType _get_logger_##name() { \
if (_logger_##name == NULL) \
_logger_##name = logger(#name); \
return _logger_##name; \
} \
}
Definition: Logger.h:77
LoggerType logger()
Retrieves the base logger.
Definition: Logger.h:85

Use to declare that you will use a fast logger (only needed if you will share a fast logger between cpp files)

#define DEFINE_LOGGER (   name)
Value:
namespace KrisLibrary { \
LoggerType _logger_##name; \
}
Definition: Logger.h:77
#define DECLARE_LOGGER(name)
Use to declare that you will use a fast logger (only needed if you will share a fast logger between c...
Definition: Logger.h:132

Use this inside a cpp file to define a fast logger.

#define LOG4CXX_DEBUG (   logger,
  data 
)
Value:
{ \
if(logger) std::cout<<logger<<": "<<data<<std::endl; \
else std::cout<<data<<std::endl; }
Definition: rayprimitives.h:132
#define LOG4CXX_ERROR (   logger,
  data 
)
Value:
{ \
if(logger) std::cerr<<logger<<": "<<data<<std::endl; \
else std::cerr<<data<<std::endl; }
Definition: rayprimitives.h:132
#define LOG4CXX_FATAL (   logger,
  data 
)
Value:
{ \
if(logger) std::cerr<<logger<<": "<<data<<std::endl; \
else std::cerr<<data<<std::endl; }
Definition: rayprimitives.h:132
#define LOG4CXX_INFO (   logger,
  data 
)
Value:
{ \
if(logger) std::cout<<logger<<": "<<data<<std::endl; \
else std::cout<<data<<std::endl; }
Definition: rayprimitives.h:132
#define LOG4CXX_WARN (   logger,
  data 
)
Value:
{ \
if(logger) std::cout<<logger<<": "<<data<<std::endl; \
else std::cout<<data<<std::endl; }
Definition: rayprimitives.h:132

Function Documentation

LoggerType KrisLibrary::logger ( )
inline

Retrieves the base logger.

To log, call LOG4CXX_INFO(KrisLibrary::logger(),msg...), or LOG4CXX_WARN, LOG4CXX_ERROR, etc.

References KrisLibrary::logger().

Referenced by KrisLibrary::logger().

LoggerType KrisLibrary::logger ( const char *  name)
inline

Retrieves a named logger.

It can be used by calling LOG4CXX_INFO(KrisLibrary::logger(name),msg...), or LOG4CXX_WARN, LOG4CXX_ERROR, etc. However, this is not the most efficient method, since logger lookup is performed for each message. Instead you should save the LoggerPtr and use it multiple times. The DEFINE_LOGGER and GET_LOGGER macros are better for this, since they only perform lookup of the logger on the first call.

References KrisLibrary::logger().