diff options
Diffstat (limited to 'cli')
-rw-r--r-- | cli/src/cli.c | 41 | ||||
-rw-r--r-- | cli/src/cli.h | 3 |
2 files changed, 28 insertions, 16 deletions
diff --git a/cli/src/cli.c b/cli/src/cli.c index 50a6c185344..932869038f1 100644 --- a/cli/src/cli.c +++ b/cli/src/cli.c @@ -199,27 +199,21 @@ glusterfs_ctx_defaults_init (glusterfs_ctx_t *ctx) static int -logging_init (glusterfs_ctx_t *ctx) +logging_init (struct cli_state *state) { - int ret = 0; - cmd_args_t *cmd_args = NULL; + char *log_file = state->log_file ? state->log_file : + DEFAULT_CLI_LOG_FILE_DIRECTORY "/cli.log"; - cmd_args = &ctx->cmd_args; - - /* CLI should not have something to DEBUG after the release, - hence defaulting to INFO loglevel */ - cmd_args->log_level = GF_LOG_INFO; - - ret = gf_asprintf (&cmd_args->log_file, - DEFAULT_CLI_LOG_FILE_DIRECTORY "/cli.log"); - - if (gf_log_init (cmd_args->log_file) == -1) { + if (gf_log_init (log_file) == -1) { fprintf (stderr, "ERROR: failed to open logfile %s\n", - cmd_args->log_file); + log_file); return -1; } - gf_log_set_loglevel (cmd_args->log_level); + /* CLI should not have something to DEBUG after the release, + hence defaulting to INFO loglevel */ + gf_log_set_loglevel ((state->log_level == -1) ? GF_LOG_INFO : + state->log_level); return 0; } @@ -350,6 +344,20 @@ cli_opt_parse (char *opt, struct cli_state *state) return 0; } + oarg = strtail (opt, "log-file="); + if (oarg) { + state->log_file = oarg; + return 0; + } + + oarg = strtail (opt, "log-level="); + if (oarg) { + state->log_level = glusterd_check_log_level(oarg); + if (state->log_level == -1) + return -1; + return 0; + } + return -1; } @@ -405,6 +413,7 @@ cli_state_init (struct cli_state *state) state->remote_host = "localhost"; + state->log_level = -1; tree = &state->tree; tree->state = state; @@ -618,7 +627,7 @@ main (int argc, char *argv[]) if (ret) goto out; - ret = logging_init (ctx); + ret = logging_init (&state); if (ret) goto out; diff --git a/cli/src/cli.h b/cli/src/cli.h index b8db0bec840..d3e1fc21bfa 100644 --- a/cli/src/cli.h +++ b/cli/src/cli.h @@ -109,6 +109,9 @@ struct cli_state { int remote_port; int mode; int await_connected; + + char *log_file; + gf_loglevel_t log_level; }; struct cli_local { |