You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@celix.apache.org by "xuzhenbao (via GitHub)" <gi...@apache.org> on 2023/05/09 01:32:28 UTC
Re: [I] How to improve the log helper of libdfi (celix)
xuzhenbao commented on issue #503:
URL: https://github.com/apache/celix/issues/503#issuecomment-1539266517
Now,we have celix_err, but how do we feed its error messages to the logHelper?
How about do it in function `celix_logHelper_vlogDetails`, as follows:
~~~
void celix_logHelper_vlogDetails(celix_log_helper_t* logHelper, celix_log_level_e level, const char* file, const char* function, int line, const char *format, va_list formatArgs) {
if (level == CELIX_LOG_LEVEL_DISABLED) {
//silently ignore
celix_err_resetErrors();
return;
}
if (level >= logHelper->activeLogLevel) {
celixThreadMutex_lock(&logHelper->mutex);
celix_log_service_t* ls = logHelper->logService;
if (ls != NULL) {
ls->vlog(ls->handle, level, format, formatArgs);
for (const char *errMsg = celix_err_popLastError(); errMsg != NULL; errMsg = celix_err_popLastError()) {
ls->log(ls->handle, level, "%s", errMsg);
}
} else {
//falling back on stdout/stderr
celix_logUtils_vLogToStdout(logHelper->logServiceName, level, format, formatArgs);
for (const char *errMsg = celix_err_popLastError(); errMsg != NULL; errMsg = celix_err_popLastError()) {
celix_logUtils_logToStdout(logHelper->logServiceName, level, "%s", errMsg);
}
}
logHelper->logCount += 1;
celixThreadMutex_unlock(&logHelper->mutex);
}
celix_err_resetErrors();
}
~~~
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: dev-unsubscribe@celix.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org