Valist is handled before logmanager_write_log is called. So it
is quite unnecessary to always having to pass a valist whether
it is used or not (and not it is never used).
Augmentation moved to skygw_log_write_context. The severity prefix
will be added there as well. If all is done on that level, the
amount of memory needed can be figured out in one go. No need to
allocate and copy the message several times.
This commit is only to introduce new logging macros.
The current implementation is such that a statement like:
MAXSCALE_NOTICE("Refreshing configuration following SIGHUP\n");
is equivalent with
LOGIF(LM, (skygw_log_write(
LOGFILE_MESSAGE,
"Refreshing configuration following SIGHUP\n")));
The actual implementation will later be changed as the logging
mechanism itself is changed.
The names of the macros are now according to the levels of syslog
and currently the mapping is like:
MAXSCALE_ERROR (Syslog LOG_ERR) -> LOGFILE_ERROR
MAXSCALE_WARNING (Syslog LOG_WARNING) -> LOGFILE_ERROR
MAXSCALE_NOTICE (Syslof LOG_NOTICE) -> LOGFILE_MESSAGE
MAXSCALE_INFO (Syslog LOG_INFO) -> LOGFILE_TRACE
MAXSCALE_DEBUG (Syslog LOG_DEBUG) -> LOGFILE_DEBUG
When log manager is changed to deal "natively" with syslog levels
this mapping will disappear of course.
Straightforward indentation and whitespace modifications.
This is the first one in a series of commits that will bring
log manager in line with the coding style.
The log manager is initialized only once and skygw_log_sync_all now checks if the log manager has been successfully started before interacting with the log manager
Log message augmentation (appending of function name) can now
be enabled or disabled via the configuration file and command
line.
By default, the augmentation is disabled.
This change does not log the file name and line numbers,
but the function name. Together with the commit information
that is logged in conjunction with a crash and that MaxScale
can tell, when invoked, that is enough to be able to pinpoint
the location where a logging was made. Furthermore, that is
a lot less intrusive and less confusing for an
end-user than filename + line.
This is just a temporary workaround; the logging mechanism
needs to get an overhaul:
- Separate severity and logging target.
- Take syslog severities into use.
- Simplify what needs to be done by developer.
- etc.