diff options
author | Matthew Jordan <mjordan@digium.com> | 2014-05-28 22:54:12 +0000 |
---|---|---|
committer | Matthew Jordan <mjordan@digium.com> | 2014-05-28 22:54:12 +0000 |
commit | fb5690ce4b9ff896a56fe9b9eb9eeed1a2b5f028 (patch) | |
tree | 5fc5aa9c8099167cf81dc9cfdadb19ce3aa24743 /main/asterisk.c | |
parent | 812f33d22218817f32ce856969e8196475f6d5fd (diff) |
Logger/CLI/etc.: Fix some aesthetic issues; reduce chatty verbose messages
This patch addresses some aesthetic issues in Asterisk. These are all just
minor tweaks to improve the look of the CLI when used in a variety of
settings. Specifically:
* A number of chatty verbose messages were removed or demoted to DEBUG
messages. Verbose messages with a verbosity level of 5 or higher were -
if kept as verbose messages - demoted to level 4. Several messages
that were emitted at verbose level 3 were demoted to 4, as announcement
of dialplan applications being executed occur at level 3 (and so the
effects of those applications should generally be less).
* Some verbose messages that only appear when their respective 'debug'
options are enabled were bumped up to always be displayed.
* Prefix/timestamping of verbose messages were moved to the verboser
handlers. This was done to prevent duplication of prefixes when the
timestamp option (-T) is used with the CLI.
* Verbose magic is removed from messages before being emitted to
non-verboser handlers. This prevents the magic in multi-line verbose
messages (such as SIP debug traces or the output of DumpChan) from
being written to files.
* _Slightly_ better support for the "light background" option (-W) was
added. This includes using ast_term_quit in the output of XML
documentation help, as well as changing the "Asterisk Ready" prompt to
bright green on the default background (which stands a better chance of
being displayed properly than bright white).
Review: https://reviewboard.asterisk.org/r/3547/
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@414798 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'main/asterisk.c')
-rw-r--r-- | main/asterisk.c | 45 |
1 files changed, 25 insertions, 20 deletions
diff --git a/main/asterisk.c b/main/asterisk.c index a3bb88198..213828c03 100644 --- a/main/asterisk.c +++ b/main/asterisk.c @@ -2068,13 +2068,14 @@ static void __remote_quit_handler(int num) sig_flags.need_quit = 1; } -static const char *fix_header(char *outbuf, int maxout, const char *s, char level) +static void set_header(char *outbuf, int maxout, char level) { const char *cmp; + char date[40]; switch (level) { - case 0: *outbuf = '\0'; - return s; + case 0: cmp = NULL; + break; case 1: cmp = VERBOSE_PREFIX_1; break; case 2: cmp = VERBOSE_PREFIX_2; @@ -2085,12 +2086,20 @@ static const char *fix_header(char *outbuf, int maxout, const char *s, char leve break; } - if (!strncmp(s, cmp, strlen(cmp))) { - s += strlen(cmp); + if (ast_opt_timestamp) { + struct ast_tm tm; + struct timeval now = ast_tvnow(); + ast_localtime(&now, &tm, NULL); + ast_strftime(date, sizeof(date), ast_logger_get_dateformat(), &tm); } - term_color(outbuf, cmp, COLOR_GRAY, 0, maxout); - return s; + snprintf(outbuf, maxout, "%s%s%s%s%s%s", + ast_opt_timestamp ? "[" : "", + ast_opt_timestamp ? date : "", + ast_opt_timestamp ? "] " : "", + cmp ? ast_term_color(COLOR_GRAY, 0) : "", + cmp ? cmp : "", + cmp ? ast_term_reset() : ""); } struct console_state_data { @@ -2118,16 +2127,15 @@ static int console_print(const char *s, int local) do { if (VERBOSE_HASMAGIC(s)) { + /* always use the given line's level, otherwise we'll use the last line's level */ state->verbose_line_level = VERBOSE_MAGIC2LEVEL(s); + /* move past magic */ s++; - if (local) { - s = fix_header(prefix, sizeof(prefix), s, - state->verbose_line_level); - } + set_header(prefix, sizeof(prefix), state->verbose_line_level); } else { *prefix = '\0'; } @@ -2149,7 +2157,7 @@ static int console_print(const char *s, int local) continue; } - if (local && !ast_strlen_zero(prefix)) { + if (!ast_strlen_zero(prefix)) { fputs(prefix, stdout); } @@ -2572,8 +2580,6 @@ static char *show_license(struct ast_cli_entry *e, int cmd, struct ast_cli_args #define ASTERISK_PROMPT "*CLI> " -#define ASTERISK_PROMPT2 "%s*CLI> " - /*! * \brief Shutdown Asterisk CLI commands. * @@ -2841,10 +2847,10 @@ static char *cli_prompt(EditLine *editline) /* Force colors back to normal at end */ ast_term_color_code(&prompt, 0, 0); } - } else if (remotehostname) { - ast_str_set(&prompt, 0, ASTERISK_PROMPT2, remotehostname); } else { - ast_str_set(&prompt, 0, "%s", ASTERISK_PROMPT); + ast_str_set(&prompt, 0, "%s%s", + remotehostname ? remotehostname : "", + ASTERISK_PROMPT); } return ast_str_buffer(prompt); @@ -4552,9 +4558,6 @@ int main(int argc, char *argv[]) dnsmgr_start_refresh(); - /* We might have the option of showing a console, but for now just - do nothing... */ - ast_verb(0, COLORIZE_FMT "\n", COLORIZE(COLOR_BRWHITE, COLOR_BLACK, "Asterisk Ready.")); if (ast_opt_no_fork) { consolethread = pthread_self(); } @@ -4581,6 +4584,8 @@ int main(int argc, char *argv[]) run_startup_commands(); + ast_verb(0, COLORIZE_FMT "\n", COLORIZE(COLOR_BRGREEN, 0, "Asterisk Ready.")); + if (ast_opt_console) { /* Console stuff now... */ /* Register our quit function */ |