logog
logger optimized for games
Requirements

logog assumes the existence of a C99 compliant C++ compiler. It uses variadic macros in the C99 style, so any compiler that does not understand VA_ARGS style message passing will not work. The vast majority of semi-modern compilers do.

logog also has limited dependencies on STL. These dependencies are represented by #defines in the file platform.hpp. If your STL lacks support for any of these containers, or if you're using another STL-like container system, you may replace these #defines and they will be used as logog's standard containers.

#define LOGOG_HASH std::tr1::hash
#ifdef LOGOG_HAS_UNORDERED_MAP
#ifdef LOGOG_USE_TR1
#include <tr1/unordered_map>
#else
#include <unordered_map>
#endif // LOGOG_USE_TR1
#ifdef _GLIBCXX_UNORDERED_MAP
#define LOGOG_UNORDERED_MAP std::unordered_map
#else // _GLIBCXX_UNORDERED_MAP
#define LOGOG_UNORDERED_MAP std::tr1::unordered_map
#endif // _GLIBCXX_UNORDERED_MAP
#else // LOGOG_HAS_UNORDERED_MAP
#include <hash_map>
#define LOGOG_UNORDERED_MAP std::hash_map
#endif // LOGOG_HAS_UNORDERED_MAP
#define LOGOG_INTERNAL_FAILURE abort();
/* ----------------------------------------------- */
/* Here's the stuff that's pretty standard in STL by now. */
#define LOGOG_PAIR std::pair
#include <list>
#define LOGOG_LIST std::list
#include <vector>
#define LOGOG_VECTOR std::vector
#include <set>
#define LOGOG_SET std::set
#define LOGOG_EQUAL_TO std::equal_to