diff options
author | Luo Jinghua <sunmoon1997@gmail.com> | 2011-11-27 13:41:17 +0800 |
---|---|---|
committer | Luo Jinghua <sunmoon1997@gmail.com> | 2011-11-27 13:41:17 +0800 |
commit | bb46772369eccd309a89014baaf4b4c564566df4 (patch) | |
tree | 8c223d39eccac1a6cd14debaf89507fbd9e5ea0d | |
parent | 06e88b17406634e305eae249c925729af24e1509 (diff) |
SexyAppFramework: Added logLevelFromName()
-rw-r--r-- | osframework/source/SexyAppFramework/SexyLog.cpp | 26 | ||||
-rw-r--r-- | osframework/source/SexyAppFramework/SexyLog.h | 2 |
2 files changed, 24 insertions, 4 deletions
diff --git a/osframework/source/SexyAppFramework/SexyLog.cpp b/osframework/source/SexyAppFramework/SexyLog.cpp index f410a5e..81f34f0 100644 --- a/osframework/source/SexyAppFramework/SexyLog.cpp +++ b/osframework/source/SexyAppFramework/SexyLog.cpp @@ -6,17 +6,35 @@ namespace Sexy { +static const char* LogNames[] = { + "debug", "info", "warn", "error" +}; const char* logLevelName(LogLevel level) { - const char* names[] = { - "debug", "info", "warn", "error" - }; if (level >= LOG_DEBUG && level < LOG_LEVEL_MAX) - return names[level]; + return LogNames[level]; return "unknown"; } +bool logLevelFromName(const char* name, LogLevel& level) +{ + if (!name || !*name) + return false; + + std::string s = name; + inlineLower(s); + for (size_t i = 0; i < sizeof(LogNames) / sizeof(LogNames[0]); i++) + { + if (s == LogNames[i]) + { + level = LogLevel(i); + return true; + } + } + return false; +} + void log(LogLevel lvl, const std::string& tag, const std::string& s) { LogManager& mgr = LogManager::getInstance(); diff --git a/osframework/source/SexyAppFramework/SexyLog.h b/osframework/source/SexyAppFramework/SexyLog.h index b3bb3ff..0370047 100644 --- a/osframework/source/SexyAppFramework/SexyLog.h +++ b/osframework/source/SexyAppFramework/SexyLog.h @@ -14,6 +14,8 @@ namespace Sexy { }; const char* logLevelName(LogLevel level); + bool logLevelFromName(const char* name, LogLevel& level); + void logf(LogLevel lvl, const std::string& tag, const char* fmt, ...); void logf(LogLevel lvl, const char* fmt, ...); void log(LogLevel lvl, const std::string& tag, const std::string& s); |