Added support for logging messages to multiple logfiles in a single call.
This commit is contained in:
@ -1368,7 +1368,7 @@ int skygw_log_write_flush(
|
|||||||
const char* str,
|
const char* str,
|
||||||
...)
|
...)
|
||||||
{
|
{
|
||||||
int err = 0;
|
int i,err = 0;
|
||||||
va_list valist;
|
va_list valist;
|
||||||
size_t len;
|
size_t len;
|
||||||
|
|
||||||
@ -1379,15 +1379,6 @@ int skygw_log_write_flush(
|
|||||||
}
|
}
|
||||||
CHK_LOGMANAGER(lm);
|
CHK_LOGMANAGER(lm);
|
||||||
|
|
||||||
/**
|
|
||||||
* If particular log is disabled in general and it is not enabled for
|
|
||||||
* the current session, then unregister and return.
|
|
||||||
*/
|
|
||||||
if (!LOG_IS_ENABLED(id))
|
|
||||||
{
|
|
||||||
err = 1;
|
|
||||||
goto return_unregister;
|
|
||||||
}
|
|
||||||
/**
|
/**
|
||||||
* Find out the length of log string (to be formatted str).
|
* Find out the length of log string (to be formatted str).
|
||||||
*/
|
*/
|
||||||
@ -1401,16 +1392,27 @@ int skygw_log_write_flush(
|
|||||||
/**
|
/**
|
||||||
* Write log string to buffer and add to file write list.
|
* Write log string to buffer and add to file write list.
|
||||||
*/
|
*/
|
||||||
va_start(valist, str);
|
for(i = LOGFILE_FIRST;i<=LOGFILE_LAST;i <<=1)
|
||||||
err = logmanager_write_log(id, true, true, true, false, len, str, valist);
|
{
|
||||||
va_end(valist);
|
/**
|
||||||
|
* If particular log is disabled in general and it is not enabled for
|
||||||
|
* the current session, check the next log.
|
||||||
|
*/
|
||||||
|
if (!LOG_IS_ENABLED(i) || (i & id) == 0)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if (err != 0) {
|
va_start(valist, str);
|
||||||
fprintf(stderr, "skygw_log_write_flush failed.\n");
|
err = logmanager_write_log((logfile_id_t)i, true, true, true, false, len, str, valist);
|
||||||
goto return_unregister;
|
va_end(valist);
|
||||||
|
|
||||||
|
if (err != 0) {
|
||||||
|
fprintf(stderr, "skygw_log_write_flush failed.\n");
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return_unregister:
|
|
||||||
logmanager_unregister();
|
logmanager_unregister();
|
||||||
return_err:
|
return_err:
|
||||||
return err;
|
return err;
|
||||||
@ -1423,7 +1425,7 @@ int skygw_log_write(
|
|||||||
const char* str,
|
const char* str,
|
||||||
...)
|
...)
|
||||||
{
|
{
|
||||||
int err = 0;
|
int i,err = 0;
|
||||||
va_list valist;
|
va_list valist;
|
||||||
size_t len;
|
size_t len;
|
||||||
|
|
||||||
@ -1438,11 +1440,7 @@ int skygw_log_write(
|
|||||||
* If particular log is disabled in general and it is not enabled for
|
* If particular log is disabled in general and it is not enabled for
|
||||||
* the current session, then unregister and return.
|
* the current session, then unregister and return.
|
||||||
*/
|
*/
|
||||||
if (!LOG_IS_ENABLED(id))
|
|
||||||
{
|
|
||||||
err = 1;
|
|
||||||
goto return_unregister;
|
|
||||||
}
|
|
||||||
/**
|
/**
|
||||||
* Find out the length of log string (to be formatted str).
|
* Find out the length of log string (to be formatted str).
|
||||||
*/
|
*/
|
||||||
@ -1457,16 +1455,27 @@ int skygw_log_write(
|
|||||||
* Write log string to buffer and add to file write list.
|
* Write log string to buffer and add to file write list.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
va_start(valist, str);
|
for(i = LOGFILE_FIRST;i<=LOGFILE_LAST;i <<=1)
|
||||||
err = logmanager_write_log(id, false, true, true, false, len, str, valist);
|
{
|
||||||
va_end(valist);
|
/**
|
||||||
|
* If particular log is disabled in general and it is not enabled for
|
||||||
|
* the current session, check the next log.
|
||||||
|
*/
|
||||||
|
if (!LOG_IS_ENABLED(i) || (i & id) == 0)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if (err != 0) {
|
va_start(valist, str);
|
||||||
fprintf(stderr, "skygw_log_write failed.\n");
|
err = logmanager_write_log((logfile_id_t)i, false, true, true, false, len, str, valist);
|
||||||
goto return_unregister;
|
va_end(valist);
|
||||||
|
|
||||||
|
if (err != 0) {
|
||||||
|
fprintf(stderr, "skygw_log_write failed.\n");
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return_unregister:
|
|
||||||
logmanager_unregister();
|
logmanager_unregister();
|
||||||
return_err:
|
return_err:
|
||||||
return err;
|
return err;
|
||||||
|
|||||||
Reference in New Issue
Block a user