Implement common logging function
When used as a library, it's desirable to be able to suppress logging,
or pipe logging through a different path. This commit changes behavior
such that logging is disabled by default, and introduces 2 new methods,
cper_set_log_stdio and cper_set_log_custom.
These allow library integrators to specify their logging mode. In
practice, this also allows fuzzing to run faster by not printing errors
to the log.
Change-Id: I941476627bc9b8261ba5f6c0b2b2338fdf931dd2
Signed-off-by: Ed Tanous <etanous@nvidia.com>
diff --git a/sections/cper-section-cxl-component.c b/sections/cper-section-cxl-component.c
index cae152b..c4e8169 100644
--- a/sections/cper-section-cxl-component.c
+++ b/sections/cper-section-cxl-component.c
@@ -10,6 +10,7 @@
#include <libcper/Cper.h>
#include <libcper/cper-utils.h>
#include <libcper/sections/cper-section-cxl-component.h>
+#include <libcper/log.h>
//Converts a single CXL component error CPER section into JSON IR.
json_object *cper_section_cxl_component_to_ir(const UINT8 *section, UINT32 size)
@@ -82,7 +83,8 @@
char *encoded = base64_encode(cur_pos, remaining_len,
&encoded_len);
if (encoded == NULL) {
- printf("Failed to allocate encode output buffer. \n");
+ cper_print_log(
+ "Failed to allocate encode output buffer. \n");
json_object_put(section_ir);
return NULL;
}
@@ -166,7 +168,8 @@
json_object_get_string_len(encoded), &decoded_len);
if (decoded == NULL) {
- printf("Failed to allocate decode output buffer. \n");
+ cper_print_log(
+ "Failed to allocate decode output buffer. \n");
} else {
fwrite(decoded, decoded_len, 1, out);
fflush(out);