in src/logging.c [60:91]
static int crt_logger_log(
struct aws_logger *logger,
enum aws_log_level log_level,
aws_log_subject_t subject,
const char *format,
...) {
va_list format_args;
va_start(format_args, format);
struct logger_impl *impl = logger->p_impl;
struct aws_string *output = NULL;
AWS_ASSERT(impl->formatter->vtable->format != NULL);
int result = (impl->formatter->vtable->format)(impl->formatter, &output, log_level, subject, format, format_args);
va_end(format_args);
if (result != AWS_OP_SUCCESS || output == NULL) {
return AWS_OP_ERR;
}
AWS_ASSERT(impl->channel->vtable->send != NULL);
if ((impl->channel->vtable->send)(impl->channel, output)) {
/*
* failure to send implies failure to transfer ownership
*/
aws_string_destroy(output);
return AWS_OP_ERR;
}
return AWS_OP_SUCCESS;
}