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 | |
| 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')
| -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);  | 
