Author: aschnell Date: Wed Nov 12 11:22:25 2008 New Revision: 53192 URL: http://svn.opensuse.org/viewcvs/yast?rev=53192&view=rev Log: - improved logging functions Modified: trunk/storage/libstorage/src/AppUtil.cc trunk/storage/libstorage/src/AppUtil.h Modified: trunk/storage/libstorage/src/AppUtil.cc URL: http://svn.opensuse.org/viewcvs/yast/trunk/storage/libstorage/src/AppUtil.cc?rev=53192&r1=53191&r2=53192&view=diff ============================================================================== --- trunk/storage/libstorage/src/AppUtil.cc (original) +++ trunk/storage/libstorage/src/AppUtil.cc Wed Nov 12 11:22:25 2008 @@ -353,34 +353,58 @@ } +bool +testLogLevel(LogLevel level) +{ + using namespace blocxx; + + ELogLevel curLevel = LogAppender::getCurrentLogAppender()->getLogLevel(); + + switch (level) + { + case DEBUG: + return curLevel >= ::blocxx::E_DEBUG_LEVEL; + case MILESTONE: + return curLevel >= ::blocxx::E_INFO_LEVEL; + case WARNING: + return curLevel >= ::blocxx::E_WARNING_LEVEL; + case ERROR: + return curLevel >= ::blocxx::E_ERROR_LEVEL; + default: + return curLevel >= ::blocxx::E_FATAL_ERROR_LEVEL; + } +} + + void -logMsg(unsigned level, const char* file, unsigned line, const char* func, +logMsg(LogLevel level, const char* file, unsigned line, const char* func, const string& str) { using namespace blocxx; ELogLevel curLevel = LogAppender::getCurrentLogAppender()->getLogLevel(); String category; - switch( level ) + + switch (level) { - case 0: - if( curLevel >= ::blocxx::E_DEBUG_LEVEL) + case DEBUG: + if (curLevel >= ::blocxx::E_DEBUG_LEVEL) category = Logger::STR_DEBUG_CATEGORY; break; - case 1: - if( curLevel >= ::blocxx::E_INFO_LEVEL) + case MILESTONE: + if (curLevel >= ::blocxx::E_INFO_LEVEL) category = Logger::STR_INFO_CATEGORY; break; - case 2: - if( curLevel >= ::blocxx::E_WARNING_LEVEL) + case WARNING: + if (curLevel >= ::blocxx::E_WARNING_LEVEL) category = Logger::STR_WARNING_CATEGORY; break; - case 3: - if( curLevel >= ::blocxx::E_ERROR_LEVEL) + case ERROR: + if (curLevel >= ::blocxx::E_ERROR_LEVEL) category = Logger::STR_ERROR_CATEGORY; break; default: - if( curLevel >= ::blocxx::E_FATAL_ERROR_LEVEL) + if (curLevel >= ::blocxx::E_FATAL_ERROR_LEVEL) category = Logger::STR_FATAL_CATEGORY; break; } @@ -395,20 +419,23 @@ void -logMsgVaArgs(unsigned level, const char* file, unsigned line, const char* func, +logMsgVaArgs(LogLevel level, const char* file, unsigned line, const char* func, const char* format, ...) { - char* str; - va_list ap; + if (testLogLevel(level)) + { + char* str; + va_list ap; - va_start(ap, format); - if (vasprintf(&str, format, ap) == -1) - return; - va_end(ap); + va_start(ap, format); + if (vasprintf(&str, format, ap) == -1) + return; + va_end(ap); - logMsg(level, file, line, func, str); + logMsg(level, file, line, func, str); - free(str); + free(str); + } } Modified: trunk/storage/libstorage/src/AppUtil.h URL: http://svn.opensuse.org/viewcvs/yast/trunk/storage/libstorage/src/AppUtil.h?rev=53192&r1=53191&r2=53192&view=diff ============================================================================== --- trunk/storage/libstorage/src/AppUtil.h (original) +++ trunk/storage/libstorage/src/AppUtil.h Wed Nov 12 11:22:25 2008 @@ -55,36 +55,43 @@ } +enum LogLevel { DEBUG, MILESTONE, WARNING, ERROR }; + void createLogger(const string& component, const string& name, const string& logpath, const string& logfile); -void logMsg(unsigned level, const char* file, unsigned line, +bool testLogLevel(LogLevel level); + +void logMsg(LogLevel level, const char* file, unsigned line, const char* func, const string& str); -void logMsgVaArgs(unsigned level, const char* file, unsigned line, +void logMsgVaArgs(LogLevel level, const char* file, unsigned line, const char* func, const char* format, ...) __attribute__ ((format(printf, 5, 6))); #define y2debug(format, ...) \ - logMsgVaArgs(0, __FILE__, __LINE__, __FUNCTION__, format, ##__VA_ARGS__) + logMsgVaArgs(storage::DEBUG, __FILE__, __LINE__, __FUNCTION__, format, ##__VA_ARGS__) #define y2milestone(format, ...) \ - logMsgVaArgs(1, __FILE__, __LINE__, __FUNCTION__, format, ##__VA_ARGS__) + logMsgVaArgs(storage::MILESTONE, __FILE__, __LINE__, __FUNCTION__, format, ##__VA_ARGS__) #define y2warning(format, ...) \ - logMsgVaArgs(2, __FILE__, __LINE__, __FUNCTION__, format, ##__VA_ARGS__) + logMsgVaArgs(storage::WARNING, __FILE__, __LINE__, __FUNCTION__, format, ##__VA_ARGS__) #define y2error(format, ...) \ - logMsgVaArgs(3, __FILE__, __LINE__, __FUNCTION__, format, ##__VA_ARGS__) + logMsgVaArgs(storage::ERROR, __FILE__, __LINE__, __FUNCTION__, format, ##__VA_ARGS__) -#define y2deb(op) y2log_op(0, __FILE__, __LINE__, __FUNCTION__, op) -#define y2mil(op) y2log_op(1, __FILE__, __LINE__, __FUNCTION__, op) -#define y2war(op) y2log_op(2, __FILE__, __LINE__, __FUNCTION__, op) -#define y2err(op) y2log_op(3, __FILE__, __LINE__, __FUNCTION__, op) +#define y2deb(op) y2log_op(storage::DEBUG, __FILE__, __LINE__, __FUNCTION__, op) +#define y2mil(op) y2log_op(storage::MILESTONE, __FILE__, __LINE__, __FUNCTION__, op) +#define y2war(op) y2log_op(storage::WARNING, __FILE__, __LINE__, __FUNCTION__, op) +#define y2err(op) y2log_op(storage::ERROR, __FILE__, __LINE__, __FUNCTION__, op) #define y2log_op(level, file, line, function, op) \ do { \ - std::ostringstream __buf; \ - storage::classic(__buf); \ - __buf << op; \ - storage::logMsg(level, file, line, function, __buf.str()); \ + if (storage::testLogLevel(level)) \ + { \ + std::ostringstream __buf; \ + storage::classic(__buf); \ + __buf << op; \ + storage::logMsg(level, file, line, function, __buf.str()); \ + } \ } while (0) -- To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org For additional commands, e-mail: yast-commit+help@opensuse.org