From 67a109927cbb70f48198f4516c330c157bfc209a Mon Sep 17 00:00:00 2001 From: James Booth Date: Sun, 13 Apr 2014 22:20:15 +0100 Subject: Added /log where command --- src/command/command.c | 4 +++- src/command/commands.c | 22 ++++++++++++++-------- src/log.c | 9 +++++++++ src/log.h | 1 + src/ui/console.c | 2 ++ 5 files changed, 29 insertions(+), 9 deletions(-) diff --git a/src/command/command.c b/src/command/command.c index 240a4ad6..5175a16b 100644 --- a/src/command/command.c +++ b/src/command/command.c @@ -639,10 +639,11 @@ static struct cmd_t command_defs[] = NULL } } }, { "/log", - cmd_log, parse_args, 2, 2, &cons_log_setting, + cmd_log, parse_args, 1, 2, &cons_log_setting, { "/log [property] [value]", "Manage system logging settings.", { "/log [property] [value]", "-----------------------", + "where : Show the current log file location.", "Property may be one of:", "rotate : Rotate log, accepts 'on' or 'off', defaults to 'on'.", "maxsize : With rotate enabled, specifies the max log size, defaults to 1048580 (1MB).", @@ -955,6 +956,7 @@ cmd_init(void) autocomplete_add(log_ac, "maxsize"); autocomplete_add(log_ac, "rotate"); autocomplete_add(log_ac, "shared"); + autocomplete_add(log_ac, "where"); autoaway_ac = autocomplete_new(); autocomplete_add(autoaway_ac, "mode"); diff --git a/src/command/commands.c b/src/command/commands.c index bebf9d3c..0fc8574b 100644 --- a/src/command/commands.c +++ b/src/command/commands.c @@ -2287,6 +2287,10 @@ cmd_log(gchar **args, struct cmd_help_t help) int intval; if (strcmp(subcmd, "maxsize") == 0) { + if (value == NULL) { + cons_show("Usage: %s", help.usage); + return TRUE; + } if (_strtoi(value, &intval, PREFS_MIN_LOG_SIZE, INT_MAX) == 0) { prefs_set_max_log_size(intval); cons_show("Log maxinum size set to %d bytes", intval); @@ -2298,22 +2302,24 @@ cmd_log(gchar **args, struct cmd_help_t help) if (value == NULL) { cons_show("Usage: %s", help.usage); return TRUE; - } else { - return _cmd_set_boolean_preference(value, help, - "Log rotate", PREF_LOG_ROTATE); } + return _cmd_set_boolean_preference(value, help, "Log rotate", PREF_LOG_ROTATE); } if (strcmp(subcmd, "shared") == 0) { if (value == NULL) { cons_show("Usage: %s", help.usage); return TRUE; - } else { - gboolean result = _cmd_set_boolean_preference(value, help, - "Shared log", PREF_LOG_SHARED); - log_reinit(); - return result; } + gboolean result = _cmd_set_boolean_preference(value, help, "Shared log", PREF_LOG_SHARED); + log_reinit(); + return result; + } + + if (strcmp(subcmd, "where") == 0) { + char *logfile = get_log_file_location(); + cons_show("Log file: %s", logfile); + return TRUE; } cons_show("Usage: %s", help.usage); diff --git a/src/log.c b/src/log.c index cb346e6c..b30c68cb 100644 --- a/src/log.c +++ b/src/log.c @@ -37,6 +37,7 @@ #define PROF "prof" static FILE *logp; +GString *mainlogfile; static GTimeZone *tz; static GDateTime *dt; @@ -120,6 +121,7 @@ log_init(log_level_t filter) tz = g_time_zone_new_local(); gchar *log_file = _get_main_log_file(); logp = fopen(log_file, "a"); + mainlogfile = g_string_new(log_file); free(log_file); } @@ -130,6 +132,12 @@ log_reinit(void) log_init(level_filter); } +char * +get_log_file_location(void) +{ + return mainlogfile->str; +} + log_level_t log_get_filter(void) { @@ -139,6 +147,7 @@ log_get_filter(void) void log_close(void) { + g_string_free(mainlogfile, TRUE); g_time_zone_unref(tz); if (logp != NULL) { fclose(logp); diff --git a/src/log.h b/src/log.h index 86d96392..d9cd92e1 100644 --- a/src/log.h +++ b/src/log.h @@ -42,6 +42,7 @@ void log_init(log_level_t filter); log_level_t log_get_filter(void); void log_close(void); void log_reinit(void); +char * get_log_file_location(void); void log_debug(const char * const msg, ...); void log_info(const char * const msg, ...); void log_warning(const char * const msg, ...); diff --git a/src/ui/console.c b/src/ui/console.c index ec9130cf..d7bb1904 100644 --- a/src/ui/console.c +++ b/src/ui/console.c @@ -31,6 +31,7 @@ #include "command/command.h" #include "common.h" +#include "log.h" #include "roster_list.h" #include "config/preferences.h" #include "config/theme.h" @@ -1222,6 +1223,7 @@ _cons_show_chat_prefs(void) static void _cons_log_setting(void) { + cons_show("Log file location : %s", get_log_file_location()); cons_show("Max log size (/log maxsize) : %d bytes", prefs_get_max_log_size()); if (prefs_get_boolean(PREF_LOG_ROTATE)) -- cgit 1.4.1-2-gfad0