diff options
| author | Vijay Bellur <vbellur@redhat.com> | 2013-09-13 15:20:45 +0530 | 
|---|---|---|
| committer | Anand Avati <avati@redhat.com> | 2013-09-24 12:00:54 -0700 | 
| commit | aa971f439d6eef9e52091915ce7ab1127aac1368 (patch) | |
| tree | d49761380b129994d0036aa5dcf28d721d0654cc | |
| parent | 848471799236063961eb37cb7bda3cf0e9a6f956 (diff) | |
logging: Expose set_log_file_path() in libglusterfs.
This patch also changes the behavior of glfs_set_logging().
If logfile argument is not provided to glfs_set_logging(),
libgfapi uses set_log_file_path() to create a logfile.
Change-Id: I49ec66c7f16f5604ff2f7cf7b365b08a05b5460d
BUG: 764890
Signed-off-by: Vijay Bellur <vbellur@redhat.com>
Reviewed-on: http://review.gluster.org/5910
Reviewed-by: Anand Avati <avati@redhat.com>
Tested-by: Anand Avati <avati@redhat.com>
| -rw-r--r-- | api/src/glfs.c | 20 | ||||
| -rw-r--r-- | api/src/glfs.h | 4 | ||||
| -rw-r--r-- | glusterfsd/src/glusterfsd.c | 61 | ||||
| -rw-r--r-- | libglusterfs/src/common-utils.c | 61 | ||||
| -rw-r--r-- | libglusterfs/src/common-utils.h | 1 | 
5 files changed, 80 insertions, 67 deletions
diff --git a/api/src/glfs.c b/api/src/glfs.c index 4a41db937b1..1cb9088c0dc 100644 --- a/api/src/glfs.c +++ b/api/src/glfs.c @@ -475,17 +475,25 @@ int  glfs_set_logging (struct glfs *fs, const char *logfile, int loglevel)  {  	int  ret = 0; +        char *tmplog = NULL; + +        if (!logfile) { +                ret = gf_set_log_file_path (&fs->ctx->cmd_args); +                if (ret) +                        goto out; +                tmplog = fs->ctx->cmd_args.log_file; +        } else { +                tmplog = (char *)logfile; +        } -	if (logfile) { -                /* passing ident as NULL means to use default ident for syslog */ -		ret = gf_log_init (fs->ctx, logfile, NULL); -		if (ret) -			return ret; -	} +        ret = gf_log_init (fs->ctx, tmplog, NULL); +        if (ret) +                goto out;  	if (loglevel >= 0)  		gf_log_set_loglevel (loglevel); +out:  	return ret;  } diff --git a/api/src/glfs.h b/api/src/glfs.h index 8aac6f8b6e2..fd44c2fc885 100644 --- a/api/src/glfs.h +++ b/api/src/glfs.h @@ -176,7 +176,9 @@ int glfs_set_volfile_server (glfs_t *fs, const char *transport,    @fs: The 'virtual mount' object to be configured with the logging parameters.    @logfile: The logfile to be used for logging. Will be created if it does not -            already exist (provided system permissions allow.) +            already exist (provided system permissions allow). If NULL, a new +            logfile will be created in default log directory associated with +            the glusterfs installation.    @loglevel: Numerical value specifying the degree of verbosity. Higher the               value, more verbose the logging. diff --git a/glusterfsd/src/glusterfsd.c b/glusterfsd/src/glusterfsd.c index c6eb58d5156..edda64942e3 100644 --- a/glusterfsd/src/glusterfsd.c +++ b/glusterfsd/src/glusterfsd.c @@ -1200,65 +1200,6 @@ gf_get_process_mode (char *exec_name)  } - -static int -set_log_file_path (cmd_args_t *cmd_args) -{ -        int   i = 0; -        int   j = 0; -        int   ret = 0; -        int   port = 0; -        char  tmp_str[1024] = {0,}; - -        if (cmd_args->mount_point) { -                j = 0; -                i = 0; -                if (cmd_args->mount_point[0] == '/') -                        i = 1; -                for (; i < strlen (cmd_args->mount_point); i++,j++) { -                        tmp_str[j] = cmd_args->mount_point[i]; -                        if (cmd_args->mount_point[i] == '/') -                                tmp_str[j] = '-'; -                } - -                ret = gf_asprintf (&cmd_args->log_file, -                                   DEFAULT_LOG_FILE_DIRECTORY "/%s.log", -                                   tmp_str); -                goto done; -        } - -        if (cmd_args->volfile) { -                j = 0; -                i = 0; -                if (cmd_args->volfile[0] == '/') -                        i = 1; -                for (; i < strlen (cmd_args->volfile); i++,j++) { -                        tmp_str[j] = cmd_args->volfile[i]; -                        if (cmd_args->volfile[i] == '/') -                                tmp_str[j] = '-'; -                } -                ret = gf_asprintf (&cmd_args->log_file, -                                   DEFAULT_LOG_FILE_DIRECTORY "/%s.log", -                                   tmp_str); -                goto done; -        } - -        if (cmd_args->volfile_server) { -                port = GF_DEFAULT_BASE_PORT; - -                if (cmd_args->volfile_server_port) -                        port = cmd_args->volfile_server_port; - -                ret = gf_asprintf (&cmd_args->log_file, -                                   DEFAULT_LOG_FILE_DIRECTORY "/%s-%s-%d.log", -                                   cmd_args->volfile_server, -                                   cmd_args->volfile_id, port); -        } -done: -        return ret; -} - -  static int  glusterfs_ctx_defaults_init (glusterfs_ctx_t *ctx)  { @@ -1411,7 +1352,7 @@ logging_init (glusterfs_ctx_t *ctx, const char *progpath)          cmd_args = &ctx->cmd_args;          if (cmd_args->log_file == NULL) { -                ret = set_log_file_path (cmd_args); +                ret = gf_set_log_file_path (cmd_args);                  if (ret == -1) {                          fprintf (stderr, "ERROR: failed to set the log file path\n");                          return -1; diff --git a/libglusterfs/src/common-utils.c b/libglusterfs/src/common-utils.c index 6eb886b384a..f223a3f8a85 100644 --- a/libglusterfs/src/common-utils.c +++ b/libglusterfs/src/common-utils.c @@ -2807,3 +2807,64 @@ out:  } +/* Sets log file path from user provided arguments */ +int +gf_set_log_file_path (cmd_args_t *cmd_args) +{ +        int   i = 0; +        int   j = 0; +        int   ret = 0; +        char  tmp_str[1024] = {0,}; + +        if (!cmd_args) +                goto done; + +        if (cmd_args->mount_point) { +                j = 0; +                i = 0; +                if (cmd_args->mount_point[0] == '/') +                        i = 1; +                for (; i < strlen (cmd_args->mount_point); i++,j++) { +                        tmp_str[j] = cmd_args->mount_point[i]; +                        if (cmd_args->mount_point[i] == '/') +                                tmp_str[j] = '-'; +                } + +                ret = gf_asprintf (&cmd_args->log_file, +                                   DEFAULT_LOG_FILE_DIRECTORY "/%s.log", +                                   tmp_str); +                if (ret > 0) +                        ret = 0; +                goto done; +        } + +        if (cmd_args->volfile) { +                j = 0; +                i = 0; +                if (cmd_args->volfile[0] == '/') +                        i = 1; +                for (; i < strlen (cmd_args->volfile); i++,j++) { +                        tmp_str[j] = cmd_args->volfile[i]; +                        if (cmd_args->volfile[i] == '/') +                                tmp_str[j] = '-'; +                } +                ret = gf_asprintf (&cmd_args->log_file, +                                   DEFAULT_LOG_FILE_DIRECTORY "/%s.log", +                                   tmp_str); +                if (ret > 0) +                        ret = 0; +                goto done; +        } + +        if (cmd_args->volfile_server) { + +                ret = gf_asprintf (&cmd_args->log_file, +                                   DEFAULT_LOG_FILE_DIRECTORY "/%s-%s-%d.log", +                                   cmd_args->volfile_server, +                                   cmd_args->volfile_id, getpid()); +                if (ret > 0) +                        ret = 0; +        } +done: +        return ret; +} diff --git a/libglusterfs/src/common-utils.h b/libglusterfs/src/common-utils.h index bf41444d13a..bc8a2db55ab 100644 --- a/libglusterfs/src/common-utils.h +++ b/libglusterfs/src/common-utils.h @@ -112,6 +112,7 @@ in_addr_t gf_resolve_ip (const char *hostname, void **dnscache);  void gf_log_dump_graph (FILE *specfp, glusterfs_graph_t *graph);  void gf_print_trace (int32_t signal, glusterfs_ctx_t *ctx); +int  gf_set_log_file_path (cmd_args_t *cmd_args);  #define VECTORSIZE(count) (count * (sizeof (struct iovec)))  | 
