Change Tizen Log macros
authorKwangYong Choi <ky0.choi@samsung.com>
Thu, 18 Apr 2013 02:28:46 +0000 (11:28 +0900)
committerKwangYong Choi <ky0.choi@samsung.com>
Thu, 18 Apr 2013 05:06:25 +0000 (14:06 +0900)
[Title] Change Tizen Log macros
[Issue#] N/A
[Problem] SECURE_LOG is implemented. LOG macro has been changed.
[Cause] DLOG package is changed.
[Solution] Use LOG_VA instead of LOG.
           Add TIZEN_SECURE_LOG[IE] for secure logs.

Change-Id: I924d2d206b75f534e860a791836e7f79ee0ccac6

Source/WTF/wtf/Assertions.cpp
Source/WTF/wtf/Assertions.h

index 63761c9..a1e32e1 100644 (file)
@@ -417,16 +417,19 @@ void WTFLogVerbose(const char* file, int line, const char* function, WTFLogChann
     va_list args;
     va_start(args, format);
 #if ENABLE(TIZEN_DLOG_SUPPORT)
-    static char logMessage[DLOG_MAX_LENGTH];
-
-    int prefixLength = snprintf(logMessage, DLOG_MAX_LENGTH, "%s(%d) > ", function, line);
-    vsnprintf(logMessage + prefixLength, DLOG_MAX_LENGTH - prefixLength, format, args);
-    if (channel->mask == 0x00040000)
-        ALOG(LOG_INFO, DLOG_WEBKIT_TAG, "%s", logMessage);
-    else if (channel->mask == 0x00080000)
-        ALOG(LOG_ERROR, DLOG_WEBKIT_TAG, "%s", logMessage);
-    else
-        LOG(LOG_INFO, DLOG_WEBKIT_TAG, "%s", logMessage); // LOG macro from dlog
+    char logFormat[DLOG_MAX_LENGTH] = { 0 };
+
+    snprintf(logFormat, DLOG_MAX_LENGTH, "%s(%d) > %s", function, line, format);
+    switch (channel->mask) {
+    case 0x00040000:
+        ALOG_VA(LOG_INFO, DLOG_WEBKIT_TAG, logFormat, args);
+        break;
+    case 0x00080000:
+        ALOG_VA(LOG_ERROR, DLOG_WEBKIT_TAG, logFormat, args);
+        break;
+    default:
+        LOG_VA(LOG_INFO, DLOG_WEBKIT_TAG, logFormat, args);
+    }
 
     va_end(args);
 #else
@@ -450,30 +453,35 @@ void WTFLogAlways(const char* format, ...)
 }
 
 #if ENABLE(TIZEN_DLOG_SUPPORT)
-void TizenLogError(int line, const char* function, const char* format, ...)
+void TizenLog(TizenDlogPriority priority, bool secureLog, int line, const char* function, const char* format, ...)
 {
-    va_list args;
-    va_start(args, format);
-
-    static char logMessage[DLOG_MAX_LENGTH];
-
-    int prefixLength = snprintf(logMessage, DLOG_MAX_LENGTH, "%s(%d) > ERROR: ", function, line);
-    vsnprintf(logMessage + prefixLength, DLOG_MAX_LENGTH - prefixLength, format, args);
-    LOG(LOG_ERROR, DLOG_WEBKIT_TAG, "%s", logMessage); // LOG macro from dlog
-
-    va_end(args);
-}
+#ifndef _SECURE_LOG
+    // Do not print logs if _SECURE_LOG is not defined by dlog package and secureLog is true.
+    if (secureLog)
+        return;
+#endif
 
-void TizenLogInfo(int line, const char* function, const char* format, ...)
-{
     va_list args;
     va_start(args, format);
 
-    static char logMessage[DLOG_MAX_LENGTH];
-
-    int prefixLength = snprintf(logMessage, DLOG_MAX_LENGTH, "%s(%d) > ", function, line);
-    vsnprintf(logMessage + prefixLength, DLOG_MAX_LENGTH - prefixLength, format, args);
-    LOG(LOG_INFO, DLOG_WEBKIT_TAG, "%s", logMessage); // LOG macro from dlog
+    char logFormat[DLOG_MAX_LENGTH] = { 0 };
+
+    const char* secureLogTag = "";
+    if (secureLog)
+        secureLogTag = "[SECURE_LOG] ";
+
+    switch (priority) {
+    case TIZEN_DLOG_PRIORITY_INFO:
+        snprintf(logFormat, DLOG_MAX_LENGTH, "%s(%d) > %s%s", function, line, secureLogTag, format);
+        LOG_VA(LOG_INFO, DLOG_WEBKIT_TAG, logFormat, args);
+        break;
+    case TIZEN_DLOG_PRIORITY_ERROR:
+        snprintf(logFormat, DLOG_MAX_LENGTH, "%s(%d) > %sERROR: %s", function, line, secureLogTag, format);
+        LOG_VA(LOG_ERROR, DLOG_WEBKIT_TAG, logFormat, args);
+        break;
+    default:
+        ASSERT_NOT_REACHED();
+    }
 
     va_end(args);
 }
index e200fc3..6e8c1f8 100644 (file)
@@ -154,8 +154,12 @@ WTF_EXPORT_PRIVATE void WTFSetCrashHook(WTFCrashHookFunction);
 WTF_EXPORT_PRIVATE void WTFInvokeCrashHook();
 
 #if ENABLE(TIZEN_DLOG_SUPPORT)
-WTF_EXPORT_PRIVATE void TizenLogError(int line, const char* function, const char* format, ...);
-WTF_EXPORT_PRIVATE void TizenLogInfo(int line, const char* function, const char* format, ...);
+typedef enum {
+    TIZEN_DLOG_PRIORITY_ERROR,
+    TIZEN_DLOG_PRIORITY_INFO
+} TizenDlogPriority;
+
+WTF_EXPORT_PRIVATE void TizenLog(TizenDlogPriority priority, bool secureLog, int line, const char* function, const char* format, ...);
 #endif
 
 #ifdef __cplusplus
@@ -365,8 +369,12 @@ while (0)
 #else
 #if ENABLE(TIZEN_DLOG_SUPPORT)
 // Use below macros to print out WebKit debug log.
-#define TIZEN_LOGE(...) TizenLogError(__LINE__, WTF_PRETTY_FUNCTION, __VA_ARGS__);
-#define TIZEN_LOGI(...) TizenLogInfo(__LINE__, WTF_PRETTY_FUNCTION, __VA_ARGS__);
+#define TIZEN_LOGE(...) TizenLog(TIZEN_DLOG_PRIORITY_ERROR, false, __LINE__, WTF_PRETTY_FUNCTION, __VA_ARGS__);
+#define TIZEN_LOGI(...) TizenLog(TIZEN_DLOG_PRIORITY_INFO, false, __LINE__, WTF_PRETTY_FUNCTION, __VA_ARGS__);
+
+// Use below macros to print out secure log.
+#define TIZEN_SECURE_LOGE(...) TizenLog(TIZEN_DLOG_PRIORITY_ERROR, true, __LINE__, WTF_PRETTY_FUNCTION, __VA_ARGS__);
+#define TIZEN_SECURE_LOGI(...) TizenLog(TIZEN_DLOG_PRIORITY_INFO, true, __LINE__, WTF_PRETTY_FUNCTION, __VA_ARGS__);
 
 #define LOG(channel, ...) LOG_VERBOSE(channel, __VA_ARGS__)
 #else