summaryrefslogtreecommitdiffstats
path: root/glusterfsd/src
diff options
context:
space:
mode:
authorAmar Tumballi <amar@del.gluster.com>2009-05-08 01:33:02 -0700
committerAnand V. Avati <avati@amp.gluster.com>2009-05-16 15:28:09 +0530
commit4f7552c23bc4d0691062bd6a90fa76aa53bdf97c (patch)
tree30661fdc39abfc47fd5cb59b4463a9c5e2c9bb1e /glusterfsd/src
parentf4fbc7200c32c50501df7a84b4ddeb4eeb0f5525 (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.c62
1 files changed, 54 insertions, 8 deletions
diff --git a/glusterfsd/src/glusterfsd.c b/glusterfsd/src/glusterfsd.c
index 8a9a5bf05..ee64ba382 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);