//
-// Open Service Platform
// Copyright (c) 2012 Samsung Electronics Co., Ltd.
//
// Licensed under the Apache License, Version 2.0 (the License);
#include <string.h>
#include <sys/syscall.h>
#include <sys/types.h>
-#include <FIoRegistry.h>
-#include <FIoFile.h>
#include <FAppTypes.h>
#include <FBaseLog.h>
#include <FBaseSysLog.h>
#include "FBase_StringConverter.h"
#include "FApp_AppInfo.h"
+extern "C" {
+#include <iniparser.h>
+}
+
using namespace Tizen::Base;
using namespace Tizen::Io;
using namespace Tizen::Base::Collection;
#define LOG_TAG_NULL ""
#endif
+void __InitializeLogLevel(dictionary *pDic);
+void __InitializePlatformModule(dictionary *pDic);
+
static const char LOG_TAG_ASSERT[] = "Assert";
+static const char FILE_DEBUGMODE[] = "/opt/etc/.debugmode";
bool iniLoaded = false;
static char appName[LOG_MODULE_NAME_LEN_MAX];
static bool envLoaded = false;
-static bool envPlatformInfoEnabled = true;
+static bool envPlatformInfoEnabled = false;
#define APP_RESERVED(X) NID_APP+X
#define BASE_RESERVED(X) NID_BASE+X
#define WEB_RESERVED(X) NID_WEB+X
#define SHELL_RESERVED(X) NID_SHELL+X
-LogInfo logInfo =
+static LogInfo logInfo =
{
{
//OSP Namespace ID ===============================================================
char logTag[LOG_MODULE_NAME_LEN_MAX];
vconf_get_bool(VCONFKEY_SETAPPL_USB_DEBUG_MODE_BOOL, &appDebug);
- platformDebug = File::IsFileExist( "/opt/etc/.debugmode");
+ platformDebug = (0 == access(FILE_DEBUGMODE, F_OK));
snprintf(logTag, LOG_MODULE_NAME_LEN_MAX, "%s", appName);
logTag[LOG_MODULE_NAME_LEN_MAX - 1] = '\0';
va_start(args, pFormat);
vconf_get_bool(VCONFKEY_SETAPPL_USB_DEBUG_MODE_BOOL, &appDebug);
- platformDebug = File::IsFileExist( "/opt/etc/.debugmode");
+ platformDebug = (0 == access(FILE_DEBUGMODE, F_OK));
if( (platformDebug == false) && (appDebug == 0) )
{
SysLogInternal(unsigned long nid, const char* pFunction, int lineNumber, const char* pFormat, ...)
{
va_list args;
- char* envValuePlatformlogging;
- char* envValueDebug;
- if (!envLoaded)
+ if (unlikely(!envLoaded))
{
- envValuePlatformlogging = getenv("TIZEN_PLATFORMLOGGING_MODE");
- envValueDebug = getenv("TIZEN_DEBUG_MODE");
-
- if ((envValuePlatformlogging != NULL) && (envValuePlatformlogging[0] == '1'))
- {
- envPlatformInfoEnabled = true;
- }
- else if ((envValueDebug != NULL) && (envValueDebug[0] == '1'))
+ int ret = access("/home/developer/.platforminfologgingmode", F_OK);
+ if (ret == 0)
{
envPlatformInfoEnabled = true;
}
{
envPlatformInfoEnabled = false;
}
+
envLoaded = true;
}
SysLogTagInternal(unsigned long nid, const char* pTag, const char* pFunction, int lineNumber, const char* pFormat, ...)
{
va_list args;
- char* envValuePlatformlogging;
- char* envValueDebug;
- if (!envLoaded)
+ if (unlikely(!envLoaded))
{
- envValuePlatformlogging = getenv("TIZEN_PLATFORMLOGGING_MODE");
- envValueDebug = getenv("TIZEN_DEBUG_MODE");
-
- if ((envValuePlatformlogging != NULL) && (envValuePlatformlogging[0] == '1'))
- {
- envPlatformInfoEnabled = true;
- }
- else if ((envValueDebug != NULL) && (envValueDebug[0] == '1'))
+ int ret = access("/home/developer/.platforminfologgingmode", F_OK);
+ if (ret == 0)
{
envPlatformInfoEnabled = true;
}
{
envPlatformInfoEnabled = false;
}
+
envLoaded = true;
}
bool platformDebug;
char logBody[LOG_LEN_MAX];
- platformDebug = File::IsFileExist( "/opt/etc/.debugmode");
+ platformDebug = (0 == access(FILE_DEBUGMODE, F_OK));
if(!platformDebug)
{
bool platformDebug;
va_list args;
- platformDebug = File::IsFileExist( "/opt/etc/.debugmode");
+ platformDebug = (0 == access(FILE_DEBUGMODE, F_OK));
if(!platformDebug)
{
void
__PrintLog(_LogType type, const char* pFunction, int lineNumber, const char* pFormat, va_list args)
{
- if (!iniLoaded)
+ if (unlikely(!iniLoaded))
{
__InitializeLogInfo();
}
char logTag[LOG_MODULE_NAME_LEN_MAX];
- if (!appNameLoaded)
+ if (unlikely(!appNameLoaded))
{
appNameLoaded = true;
char* pAppName = _StringConverter::CopyToCharArrayN(_AppInfo::GetAppExecutableName());
void
__PrintLogTag(const char* pTag, _LogType type, const char* pFunction, int lineNumber, const char* pFormat, va_list args)
{
- if (!iniLoaded)
+ if (unlikely(!iniLoaded))
{
__InitializeLogInfo();
}
void
__PrintSysLog(_LogType type, LogID id, const char* pFunction, int lineNumber, const char* pFormat, va_list args)
{
- if (!iniLoaded)
+ if (unlikely(!iniLoaded))
{
__InitializeLogInfo();
}
switch (type)
{
case static_cast<_LogType>(LOG_INFO):
- LOG_VA(LOG_INFO, logTag, logBody, args);
+ ALOG_VA(LOG_INFO, logTag, logBody, args);
break;
case static_cast<_LogType>(LOG_DEBUG):
- LOG_VA(LOG_DEBUG, logTag, logBody, args);
+ ALOG_VA(LOG_DEBUG, logTag, logBody, args);
break;
case static_cast<_LogType>(LOG_EXCEPTION):
break;
default:
- LOG_VA(LOG_DEBUG, LOG_TAG_NULL, logBody, args);
+ ALOG_VA(LOG_DEBUG, LOG_TAG_NULL, logBody, args);
break;
}
}
void
__PrintSysLogTag(const char* pTag, _LogType type, LogID id, const char* pFunction, int lineNumber, const char* pFormat, va_list args)
{
- if (!iniLoaded)
+ if (unlikely(!iniLoaded))
{
__InitializeLogInfo();
}
switch (type)
{
case static_cast<_LogType>(LOG_INFO):
- LOG_VA(LOG_INFO, logTag, logBody, args);
+ ALOG_VA(LOG_INFO, logTag, logBody, args);
break;
case static_cast<_LogType>(LOG_DEBUG):
- LOG_VA(LOG_DEBUG, logTag, logBody, args);
+ ALOG_VA(LOG_DEBUG, logTag, logBody, args);
break;
case static_cast<_LogType>(LOG_EXCEPTION):
break;
default:
- LOG_VA(LOG_DEBUG, LOG_TAG_NULL, logBody, args);
+ ALOG_VA(LOG_DEBUG, LOG_TAG_NULL, logBody, args);
break;
}
}
-char*
+const char*
__GetModuleName(LogID id)
{
return logInfo.logTable[id].logModuleName;
{
iniLoaded = true;
- Registry reg;
-
- const String regPath(L"/opt/usr/etc/system-log.ini");
-
- result r;
-
- r = reg.Construct(regPath, REG_OPEN_READ_ONLY, 0);
+ dictionary *pDic;
+ pDic = iniparser_load("/opt/usr/etc/system-log.ini");
- if (IsFailed(r))
+ if (pDic == NULL)
{
ALOG(LOG_ERROR, LOG_TAG, "[EXCEPTION] opening ini file failed.\n");
return;
}
- __InitializeLogLevel(reg);
- __InitializePlatformModule(reg);
+ __InitializeLogLevel(pDic);
+ __InitializePlatformModule(pDic);
+
+ iniparser_freedict(pDic);
}
void
-__InitializeLogLevel(const Registry& reg)
+__InitializeLogLevel(dictionary *pDic)
{
- String sectApp(L"Application");
- String sectPlatform(L"Platform");
+ char sectApp[]="Application";
+ char sectPlatform[]="Platform";
- String entryInfo(L"INFO");
- String entryDebug(L"DEBUG");
- String entryException(L"EXCEPTION");
+ char entryInfo[]="INFO";
+ char entryDebug[]="DEBUG";
+ char entryException[]="EXCEPTION";
- String strYes(L"YES");
- String retString;
+ char strYes[]="YES";
+ char *pVal;
- result r;
+ char keyString[LOG_MODULE_NAME_LEN_MAX*2];
+ int retVal;
- r = reg.GetValue(sectApp, entryInfo, retString);
- if (IsFailed(r))
+ sprintf(keyString, "%s:%s", sectApp, entryInfo);
+ keyString[LOG_MODULE_NAME_LEN_MAX*2-1] = '\0';
+ pVal = iniparser_getstr(pDic, keyString);
+ if (pVal == NULL)
{
ALOG(LOG_ERROR, LOG_TAG, "[EXCEPTION] finding Application/INFO failed.\n");
return;
}
- logInfo.applicationInfoEnabled = retString.Equals(strYes);
- retString.Clear();
+ retVal = strcmp(strYes, pVal);
+ logInfo.applicationInfoEnabled = (retVal == 0);
- r = reg.GetValue(sectApp, entryDebug, retString);
- if (IsFailed(r))
+ sprintf(keyString, "%s:%s", sectApp, entryDebug);
+ keyString[LOG_MODULE_NAME_LEN_MAX*2-1] = '\0';
+ pVal = iniparser_getstr(pDic, keyString);
+ if (pVal == NULL)
{
ALOG(LOG_ERROR, LOG_TAG, "[EXCEPTION] finding Application/DEBUG failed.\n");
return;
}
- logInfo.applicationDebugEnabled = retString.Equals(strYes);
- retString.Clear();
+ retVal = strcmp(strYes, pVal);
+ logInfo.applicationDebugEnabled = (retVal == 0);
- r = reg.GetValue(sectApp, entryException, retString);
- if (IsFailed(r))
+ sprintf(keyString, "%s:%s", sectApp, entryException);
+ keyString[LOG_MODULE_NAME_LEN_MAX*2-1] = '\0';
+ pVal = iniparser_getstr(pDic, keyString);
+ if (pVal == NULL)
{
ALOG(LOG_ERROR, LOG_TAG, "[EXCEPTION] finding Application/EXCEPTION failed.\n");
return;
}
- logInfo.applicationExceptionEnabled = retString.Equals(strYes);
- retString.Clear();
+ retVal = strcmp(strYes, pVal);
+ logInfo.applicationExceptionEnabled = (retVal == 0);
- r = reg.GetValue(sectPlatform, entryInfo, retString);
- if (IsFailed(r))
+ sprintf(keyString, "%s:%s", sectPlatform, entryInfo);
+ keyString[LOG_MODULE_NAME_LEN_MAX*2-1] = '\0';
+ pVal = iniparser_getstr(pDic, keyString);
+ if (pVal == NULL)
{
ALOG(LOG_ERROR, LOG_TAG, "[EXCEPTION] finding Platform/INFO failed.\n");
return;
}
- logInfo.platformInfoEnabled = retString.Equals(strYes);
- retString.Clear();
+ retVal = strcmp(strYes, pVal);
+ logInfo.platformInfoEnabled = (retVal == 0);
- r = reg.GetValue(sectPlatform, entryException, retString);
- if (IsFailed(r))
+ sprintf(keyString, "%s:%s", sectPlatform, entryException);
+ keyString[LOG_MODULE_NAME_LEN_MAX*2-1] = '\0';
+ pVal = iniparser_getstr(pDic, keyString);
+ if (pVal == NULL)
{
ALOG(LOG_ERROR, LOG_TAG, "[EXCEPTION] finding Platform/EXCEPTION failed.\n");
return;
}
- logInfo.platformExceptionEnabled = retString.Equals(strYes);
- retString.Clear();
+ retVal = strcmp(strYes, pVal);
+ logInfo.platformExceptionEnabled = (retVal == 0);
}
void
-__InitializePlatformModule(const Registry& reg)
+__InitializePlatformModule(dictionary *pDic)
{
- String strYes(L"YES");
- String retString;
+ char sectModule[]="PlatformModules";
+ char strYes[]="YES";
- String sectModule(L"PlatformModules");
+ char *pVal;
+ int retVal;
- result r;
+ char keyString[LOG_MODULE_NAME_LEN_MAX*2];
for (int i = 0; i < NID_MAX; i++)
{
- String strEntry(logInfo.logTable[i].logIDName);
- r = reg.GetValue(sectModule, strEntry, retString);
- if (IsFailed(r))
+
+ sprintf(keyString, "%s:%s", sectModule, logInfo.logTable[i].logIDName);
+ keyString[LOG_MODULE_NAME_LEN_MAX*2-1] = '\0';
+ pVal = iniparser_getstr(pDic, keyString);
+ if (pVal == NULL)
{
- ALOG(LOG_ERROR, LOG_TAG, "[EXCEPTION] finding PlatformModules/%ls failed.\n", strEntry.GetPointer());
+ ALOG(LOG_ERROR, LOG_TAG, "[EXCEPTION] finding PlatformModules/%ls failed.\n", logInfo.logTable[i].logIDName);
}
else
{
- logInfo.logTable[i].loggingEnabled = retString.Equals(strYes);
+ retVal = strcmp(strYes, pVal);
+ logInfo.logTable[i].loggingEnabled = (retVal == 0);
}
-
- strEntry.Clear();
- retString.Clear();
}
}