From 97a172bbe9d38fa69acac6f70d4c37be7af8fa3d Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Sat, 2 Aug 2014 00:02:01 -0700 Subject: [PATCH] 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. --- src/charles.cc | 7 +++++-- src/log.hh | 15 ++++++++------- src/logModule.hh | 27 +++++++++++++++++++++++++++ 3 files changed, 40 insertions(+), 9 deletions(-) create mode 100644 src/logModule.hh diff --git a/src/charles.cc b/src/charles.cc index b4d6865..fd795dc 100644 --- a/src/charles.cc +++ b/src/charles.cc @@ -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. */ diff --git a/src/log.hh b/src/log.hh index fcf00e9..96ead42 100644 --- a/src/log.hh +++ b/src/log.hh @@ -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__ */ diff --git a/src/logModule.hh b/src/logModule.hh new file mode 100644 index 0000000..8e51299 --- /dev/null +++ b/src/logModule.hh @@ -0,0 +1,27 @@ +/* logModule.hh + * vim: set tw=80: + * Eryn Wells + */ +/** + * 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__ */