Add logModule.hh

Defines some helper macros to make it easier to log message. Define LOG_NAME before including this file and a number of logging macros will be defined that will allow users to skip specifying the name of the log stream for each statement.
This commit is contained in:
Eryn Wells 2014-08-02 00:02:01 -07:00
parent 3a94433f5c
commit 97a172bbe9
3 changed files with 40 additions and 9 deletions

View file

@ -18,6 +18,9 @@
#include "scene.h"
#include "writer_png.h"
#define LOG_NAME "ROOT"
#include "logModule.hh"
int verbosity = 0;
@ -90,7 +93,7 @@ main(int argc,
}
if (optind >= argc) {
LOG_ERROR("root") << "Input file required.";
LOG_ERROR << "Input file required.";
fprintf(stderr, "Input file required.\n");
usage(argv[0]);
return -1;
@ -109,7 +112,7 @@ main(int argc,
}
/* Call tracer. */
LOG_INFO("root") << "Beginning render";
LOG_INFO << "Beginning render";
scene.render();
/* Write rendered scene to PNG file. */

View file

@ -183,13 +183,14 @@ Tracer::~Tracer()
} /* namespace charles */
#define LOG(name, level) charles::log::Log((name), (level))
#define LOG_ERROR(name) LOG(name, charles::log::level::Error)
#define LOG_WARN(name) LOG(name, charles::log::level::Warning)
#define LOG_INFO(name) LOG(name, charles::log::level::Info)
#define LOG_DEBUG(name) LOG(name, charles::log::level::Debug)
#define LOG_TRACE(name) LOG(name, charles::log::level::Trace)
#define LOG_NAME_LEVEL(name, level) charles::log::Log((name), (level))
#define LOG_ERROR_NAME(name) LOG_NAME_LEVEL(name, charles::log::level::Error)
#define LOG_WARN_NAME(name) LOG_NAME_LEVEL(name, charles::log::level::Warning)
#define LOG_INFO_NAME(name) LOG_NAME_LEVEL(name, charles::log::level::Info)
#define LOG_DEBUG_NAME(name) LOG_NAME_LEVEL(name, charles::log::level::Debug)
#define LOG_TRACE_NAME(name) LOG_NAME_LEVEL(name, charles::log::level::Trace)
#define TRACE_FUNC(name) auto __tracer = charles::log::Tracer((name), __PRETTY_FUNCTION__)
#define TRACE_FUNC_NAME(name) \
auto __tracer = charles::log::Tracer((name), __PRETTY_FUNCTION__)
#endif /* __LOG_HH__ */

27
src/logModule.hh Normal file
View file

@ -0,0 +1,27 @@
/* logModule.hh
* vim: set tw=80:
* Eryn Wells <eryn@erynwells.me>
*/
/**
* Defines some helper macros for logging that simplify the ones defined in
* log.hh.
*/
#ifndef __LOGMODULE_HH__
#define __LOGMODULE_HH__
#if !defined(LOG_NAME)
#warning "Log stream name undefined. Using ROOT log stream."
#define LOG_NAME "ROOT"
#endif
#define LOG_LEVEL(level) LOG_NAME_LEVEL(LOG_NAME, level)
#define LOG_ERROR LOG_ERROR_NAME(LOG_NAME)
#define LOG_WARN LOG_WARN_NAME(LOG_NAME)
#define LOG_INFO LOG_INFO_NAME(LOG_NAME)
#define LOG_DEBUG LOG_DEBUG_NAME(LOG_NAME)
#define LOG_TRACE LOG_TRACE_NAME(LOG_NAME)
#define TRACE_FUNC TRACE_FUNC_NAME(LOG_NAME)
#endif /* __LOGMODULE_HH__ */