watchdog_interval=10000
wathcdog_max_retry=3
launchpad_max_launch_failure=5
+logger_path=/run/aul/log
#define CONFIG_SERVICE_APP_ONBOOT_INTERVAL "service_app_onboot_interval"
#define CONFIG_FG_TIMEOUT "fg_timeout"
#define CONFIG_LAUNCHPAD_MAX_LAUNCH_FAILURE "launchpad_max_launch_failure"
+#define CONFIG_LOGGER_PATH "logger_path"
typedef struct config_s {
tizen_profile_t profile;
unsigned int onboot_interval;
unsigned int fg_timeout;
unsigned int max_launch_failure;
+ char *logger_path;
} config;
static config __config;
return __config.max_launch_failure;
}
+const char *_config_get_logger_path(void)
+{
+ return __config.logger_path;
+}
+
static int __get_config_int(dictionary *d, const char *key)
{
char buf[512];
return val;
}
+static const char *__get_config_string(dictionary *d, const char *key)
+{
+ char buf[512];
+ const char *val;
+
+ snprintf(buf, sizeof(buf), "configuration:%s", key);
+ val = iniparser_getstring(d, buf, NULL);
+ if (val == NULL) {
+ _W("Failed to get %s", buf);
+ return NULL;
+ }
+
+ return val;
+}
+
static int __load_config_file(const char *path)
{
+ const char *str;
int r;
dictionary *d;
r = __get_config_int(d, CONFIG_LAUNCHPAD_MAX_LAUNCH_FAILURE);
if (r > 0) {
__config.max_launch_failure = r;
- _I("[__CONFIG__] Max launch failure : %u",
+ _I("[__CONFIG__] Max launch failure: %u",
__config.max_launch_failure);
}
+ str = __get_config_string(d, CONFIG_LOGGER_PATH);
+ if (str) {
+ free(__config.logger_path);
+ __config.logger_path = strdup(str);
+ _I("[__CONFIG__] Logger path: %s", __config.logger_path);
+ }
+
+
iniparser_freedict(d);
return 0;
__config.onboot_interval = 3000;
__config.fg_timeout = 5000;
__config.max_launch_failure = 5;
+ __config.logger_path = strdup("/var/log/appfw");
if (__load_config_file(CONFIG_FILE_PATH) < 0)
_W("Failed to load config file");
void _config_fini(void)
{
_D("config fini");
+ free(__config.logger_path);
}
unsigned int _config_get_max_launch_failure(void);
+const char *_config_get_logger_path(void);
+
int _config_init(void);
void _config_fini(void);
#include <time.h>
#include <unistd.h>
+#include "amd_config.h"
#include "amd_logger.h"
#include "amd_util.h"
#define LOG_MAX_SIZE 2500
-#define LOG_APPFW_PATH "/var/log/appfw"
-#define LOG_PATH "/var/log/appfw/amd"
struct logger_s {
int fd;
int index;
};
+static char *__dir_name;
+
static gid_t __get_gid(const char *group_name)
{
char buf[sysconf(_SC_GETGR_R_SIZE_MAX)];
return 0;
}
+const char *_logger_get_dir_name(void)
+{
+ return __dir_name;
+}
+
static int __create_directory(const char *path)
{
gid_t gid;
int _logger_init(void)
{
+ char path[PATH_MAX];
int ret;
- ret = __create_directory(LOG_APPFW_PATH);
+ ret = __create_directory(_config_get_logger_path());
if (ret < 0)
return ret;
- ret = __create_directory(LOG_PATH);
+ snprintf(path, sizeof(path), "%s/amd", _config_get_logger_path());
+ ret = __create_directory(path);
if (ret < 0)
return ret;
+ __dir_name = strdup(path);
+
return 0;
}
+
+void _logger_fini(void)
+{
+ free(__dir_name);
+}
int _logger_get_fd(logger_h handle, int *fd);
+const char *_logger_get_dir_name(void);
+
int _logger_init(void);
+void _logger_fini(void);
+
#ifdef __cplusplus
}
#endif
int r;
__block_sigchld();
+ _config_init();
_logger_init();
_unix_signal_init();
_request_init();
_login_monitor_init();
_util_init();
_inotify_init();
- _config_init();
_anr_monitor_init();
_launcher_service_init();
_signal_init();
_launchpad_fini();
_launcher_service_fini();
_anr_monitor_fini();
- _config_fini();
_inotify_fini();
_util_fini();
_login_monitor_fini();
_compinfo_fini();
_noti_fini();
_unix_signal_fini();
+ _logger_fini();
+ _config_fini();
__unblock_sigchld();
}
#include <execinfo.h>
#include <signal.h>
#include <stdio.h>
+#include <linux/limits.h>
+#include "amd_config.h"
#include "amd_logger.h"
#include "amd_unix_signal.h"
#include "amd_util.h"
#define BT_BUF_SIZE 128
-#define PATH_AMD_BACKTRACE "/var/log/appfw/amd/amd_backtrace.log"
enum signo_e {
SIGNO_HUP,
int _unix_signal_init(void)
{
struct sigaction action = { 0, };
+ char path[PATH_MAX];
int ret;
int i;
}
}
- ret = _logger_create(PATH_AMD_BACKTRACE, &logger);
+ snprintf(path, sizeof(path), "%s/amd_backtrace.log",
+ _logger_get_dir_name());
+ ret = _logger_create(path, &logger);
if (ret != 0)
return ret;
#include <stdbool.h>
#include <time.h>
#include <fcntl.h>
+#include <linux/limits.h>
#include <aul.h>
#include <aul_sock.h>
#include <bundle.h>
#define OSP_K_DATACONTROL_PROVIDER "__OSP_DATACONTROL_PROVIDER__"
#define MAX_NR_OF_DESCRIPTORS 2
-#define AMD_LOG_FILE "/var/log/appfw/amd/amd.log"
static logger_h __logger;
static GHashTable *__dc_socket_pair_hash;
int _util_init(void)
{
+ char path[PATH_MAX];
int r;
- r = _logger_create(AMD_LOG_FILE, &__logger);
+ snprintf(path, sizeof(path), "%s/amd.log", _logger_get_dir_name());
+ r = _logger_create(path, &__logger);
if (r < 0)
return -1;
return _logger_print(reinterpret_cast<logger_h>(handle), tag, format_buf);
}
+
+extern "C" EXPORT_API const char* amd_logger_get_dir_name(void) {
+ return _logger_get_dir_name();
+}
extern "C" {
#endif
-#undef LOGGER_PATH
-#define LOGGER_PATH "/var/log/appfw/amd"
-
#undef LOG_MAX_STRING_SIZE
#define LOG_MAX_STRING_SIZE 256
int amd_logger_print(amd_logger_h handle, const char *tag,
const char *format, ...);
+const char *amd_logger_get_dir_name(void);
+
#ifdef __cplusplus
}
#endif
#define _GNU_SOURCE
#include <stdio.h>
#include <stdarg.h>
+#include <linux/limits.h>
#include <amd.h>
#include "amd_watch_private.h"
#define LOG_FILE "amd_watch.log"
-#define LOG_PATH LOGGER_PATH "/" LOG_FILE
static amd_logger_h __logger;
int _watch_logger_init(void)
{
+ char path[PATH_MAX];
int ret;
_D("watch logger init");
- ret = amd_logger_create(LOG_PATH, &__logger);
+ snprintf(path, sizeof(path), "%s/%s",
+ amd_logger_get_dir_name(), LOG_FILE);
+ ret = amd_logger_create(path, &__logger);
if (ret < 0)
return ret;
#define _GNU_SOURCE
#include <stdio.h>
#include <stdarg.h>
+#include <linux/limits.h>
#include <amd.h>
#include "amd_watchdog_logger.h"
#include "amd_watchdog_private.h"
#define LOG_FILE "amd_watchdog.log"
-#define LOG_PATH LOGGER_PATH "/" LOG_FILE
static amd_logger_h __logger;
int _watchdog_logger_init(void)
{
+ char path[PATH_MAX];
int ret;
_D("Watchdog logger init");
- ret = amd_logger_create(LOG_PATH, &__logger);
+ snprintf(path, sizeof(path), "%s/%s",
+ amd_logger_get_dir_name(), LOG_FILE);
+ ret = amd_logger_create(path, &__logger);
if (ret < 0)
return ret;
#define _GNU_SOURCE
#include <stdio.h>
#include <stdarg.h>
+#include <linux/limits.h>
#include <amd.h>
#include "amd_widget_logger.h"
#include "amd_widget_private.h"
#define LOG_FILE "amd_widget.log"
-#define LOG_PATH LOGGER_PATH "/" LOG_FILE
#define LOG_MAX_STRING_SIZE 256
static amd_logger_h __logger;
int _widget_logger_init(void)
{
+ char path[PATH_MAX];
int ret;
_D("widget logger init");
- ret = amd_logger_create(LOG_PATH, &__logger);
+ snprintf(path, sizeof(path), "%s/%s",
+ amd_logger_get_dir_name(), LOG_FILE);
+ ret = amd_logger_create(path, &__logger);
if (ret < 0)
return ret;