logger: Console sessions will now respect logger.conf dateformat= option
The 'core' console (ie: asterisk -c) does read logger.conf and does use the dateformat= option. Whereas 'remote' consoles (ie: asterisk -r -T) does not read logger.conf and uses a hard coded dateformat option for printing received verbose messages: main/logger.c: static char dateformat[256] = "%b %e %T" This change will load logger.conf for each remote console session and use the dateformat= option to set the per-line timestamp for verbose messages Change-Id: I3ea10990dbd920e9f7ce8ff771bc65aa7f4ea8c1 ASTERISK-25358: #close Reported-by: Igor Liferenko
This commit is contained in:
parent
9e19d98f45
commit
98d149b4ce
|
@ -0,0 +1,47 @@
|
|||
Subject: logger
|
||||
|
||||
The dateformat option in logger.conf will now control the remote
|
||||
console (asterisk -r -T) timestamp format. Previously, dateformat only
|
||||
controlled the formatting of the timestamp going to log files and the
|
||||
main console (asterisk -c) but only for non-verbose messages.
|
||||
|
||||
Internally, Asterisk does not send the logging timestamp with verbose
|
||||
messages to console clients. It's up to the Asterisk remote consoles
|
||||
to format verbose messages. Asterisk remote consoles previously did
|
||||
not load dateformat from logger.conf.
|
||||
|
||||
Previously there was a non-configurable and hard-coded "%b %e %T"
|
||||
dateformat that would be used no matter what on all verbose console
|
||||
messages printed on remote consoles.
|
||||
|
||||
Example:
|
||||
logger.conf
|
||||
dateformat=%F %T.%3q
|
||||
|
||||
# asterisk -rvvv -T
|
||||
[2021-03-19 09:54:19.760-0400] Loading res_stasis_answer.so.
|
||||
[Mar 19 09:55:43] -- Goto (dialExten,s,1)
|
||||
|
||||
Given the following example configuration in logger.conf, Asterisk log
|
||||
files and the console, will log verbose messages using the given
|
||||
timestamp. Now ensuring that all remote console messages are logged
|
||||
with the same dateformat as other log streams.
|
||||
|
||||
---
|
||||
[general]
|
||||
dateformat=%F %T.%3q
|
||||
|
||||
[logfiles]
|
||||
console => notice,warning,error,verbose
|
||||
full => notice,warning,error,debug,verbose
|
||||
---
|
||||
|
||||
Now we have a globally-defined dateformat that will be used
|
||||
consistently across the Asterisk main console, remote consoles, and
|
||||
log files.
|
||||
|
||||
Now we have consistent logging:
|
||||
|
||||
# asterisk -rvvv -T
|
||||
[2021-03-19 09:54:19.760-0400] Loading res_stasis_answer.so.
|
||||
[2021-03-19 09:55:43.920-0400] -- Goto (dialExten,s,1)
|
|
@ -621,6 +621,11 @@ an entry/exit message. To do so, you can use the ast_trace macros...
|
|||
*/
|
||||
unsigned int ast_trace_get_by_module(const char *module);
|
||||
|
||||
/*!
|
||||
* \brief load logger.conf configuration for console socket connections
|
||||
*/
|
||||
void ast_init_logger_for_socket_console(void);
|
||||
|
||||
#define TRACE_ATLEAST(level) \
|
||||
(option_trace >= (level) \
|
||||
|| (ast_opt_trace_module \
|
||||
|
|
|
@ -3251,6 +3251,8 @@ static void ast_remotecontrol(char *data)
|
|||
}
|
||||
|
||||
ast_verbose("Connected to Asterisk %s currently running on %s (pid = %d)\n", version, hostname, pid);
|
||||
ast_init_logger_for_socket_console();
|
||||
|
||||
remotehostname = hostname;
|
||||
if (el_hist == NULL || el == NULL)
|
||||
ast_el_initialize();
|
||||
|
|
|
@ -679,6 +679,23 @@ static struct logchannel *make_logchannel(const char *channel, const char *compo
|
|||
return chan;
|
||||
}
|
||||
|
||||
void ast_init_logger_for_socket_console(void)
|
||||
{
|
||||
struct ast_config *cfg;
|
||||
const char *s;
|
||||
struct ast_flags config_flags = { 0 };
|
||||
|
||||
if (!(cfg = ast_config_load2("logger.conf", "logger", config_flags)) || cfg == CONFIG_STATUS_FILEINVALID) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ((s = ast_variable_retrieve(cfg, "general", "dateformat"))) {
|
||||
ast_copy_string(dateformat, s, sizeof(dateformat));
|
||||
}
|
||||
|
||||
ast_config_destroy(cfg);
|
||||
}
|
||||
|
||||
/*!
|
||||
* \brief Read config, setup channels.
|
||||
* \param altconf Alternate configuration file to read.
|
||||
|
|
Loading…
Reference in New Issue