diff options
author | Amar Tumballi <amar@del.gluster.com> | 2009-05-08 01:33:02 -0700 |
---|---|---|
committer | Anand V. Avati <avati@amp.gluster.com> | 2009-05-16 15:28:09 +0530 |
commit | 4f7552c23bc4d0691062bd6a90fa76aa53bdf97c (patch) | |
tree | 30661fdc39abfc47fd5cb59b4463a9c5e2c9bb1e /glusterfsd/src/glusterfsd.c | |
parent | f4fbc7200c32c50501df7a84b4ddeb4eeb0f5525 (diff) |
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 <avati@amp.gluster.com>
Diffstat (limited to 'glusterfsd/src/glusterfsd.c')
-rw-r--r-- | glusterfsd/src/glusterfsd.c | 62 |
1 files 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); |