From 4f7552c23bc4d0691062bd6a90fa76aa53bdf97c Mon Sep 17 00:00:00 2001 From: Amar Tumballi Date: Fri, 8 May 2009 01:33:02 -0700 Subject: default log file different per mount (or if server, per volumefile) This feature is required becuase when more than one glusterfs process is started with default log file, all logs will be going to same file, which after a while gets more confusing. Signed-off-by: Anand V. Avati --- glusterfsd/src/glusterfsd.c | 62 +++++++++++++++++++++++++++++++++++++++------ 1 file changed, 54 insertions(+), 8 deletions(-) diff --git a/glusterfsd/src/glusterfsd.c b/glusterfsd/src/glusterfsd.c index 8a9a5bf05c4..ee64ba3821b 100644 --- a/glusterfsd/src/glusterfsd.c +++ b/glusterfsd/src/glusterfsd.c @@ -908,6 +908,58 @@ gf_get_process_mode (char *exec_name) return ret; } +void +set_log_file_path (cmd_args_t *cmd_args) +{ + int i = 0; + int port = 0; + char *tmp_ptr = NULL; + char tmp_str[1024] = {0,}; + + if (cmd_args->mount_point) { + for (i = 1; i < strlen (cmd_args->mount_point); i++) { + tmp_str[i-1] = cmd_args->mount_point[i]; + if (cmd_args->mount_point[i] == '/') + tmp_str[i-1] = '-'; + } + asprintf (&cmd_args->log_file, + DEFAULT_LOG_FILE_DIRECTORY "/%s.log", + tmp_str); + + goto done; + } + + if (cmd_args->volume_file) { + for (i = 0; i < strlen (cmd_args->volume_file); i++) { + tmp_str[i] = cmd_args->volume_file[i]; + if (cmd_args->volume_file[i] == '/') + tmp_str[i] = '-'; + } + asprintf (&cmd_args->log_file, + DEFAULT_LOG_FILE_DIRECTORY "/%s.log", + tmp_str); + + goto done; + } + + if (cmd_args->volfile_server) { + port = 1; + tmp_ptr = "default"; + + if (cmd_args->volfile_server_port) + port = cmd_args->volfile_server_port; + if (cmd_args->volfile_id) + tmp_ptr = cmd_args->volfile_id; + + asprintf (&cmd_args->log_file, + DEFAULT_LOG_FILE_DIRECTORY "/%s-%s-%d.log", + cmd_args->volfile_server, tmp_ptr, port); + } + + done: + return; +} + int main (int argc, char *argv[]) { @@ -917,7 +969,6 @@ main (int argc, char *argv[]) struct stat stbuf; char tmp_logfile[1024] = { 0 }; char timestr[256] = { 0 }; - char *base_exec_name = NULL; time_t utime; struct tm *tm = NULL; int ret = 0; @@ -932,8 +983,7 @@ main (int argc, char *argv[]) utime = time (NULL); ctx = CALLOC (1, sizeof (glusterfs_ctx_t)); ERR_ABORT (ctx); - base_exec_name = strdup (argv[0]); - process_mode = gf_get_process_mode (base_exec_name); + process_mode = gf_get_process_mode (argv[0]); set_global_ctx_ptr (ctx); ctx->process_uuid = zr_build_process_uuid (); cmd_args = &ctx->cmd_args; @@ -961,11 +1011,7 @@ main (int argc, char *argv[]) } if (cmd_args->log_file == NULL) - asprintf (&cmd_args->log_file, - DEFAULT_LOG_FILE_DIRECTORY "/%s.log", - basename (base_exec_name)); - - free (base_exec_name); + set_log_file_path (cmd_args); ctx->page_size = 128 * 1024; ctx->iobuf_pool = iobuf_pool_new (8 * 1048576, ctx->page_size + 4096); -- cgit