diff options
Diffstat (limited to 'sinks/stderr/elapi_sink_stderr.c')
-rw-r--r-- | sinks/stderr/elapi_sink_stderr.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/sinks/stderr/elapi_sink_stderr.c b/sinks/stderr/elapi_sink_stderr.c index 7bd5bf8..1c56b4e 100644 --- a/sinks/stderr/elapi_sink_stderr.c +++ b/sinks/stderr/elapi_sink_stderr.c @@ -59,7 +59,9 @@ static int stderr_sink_init(struct data_descriptor *dblock) /* Formatting calback */ -static int stderr_sink_format(struct data_descriptor *dblock,struct collection_item *event) +static int stderr_sink_format(struct data_descriptor *dblock, + char *format_str, + struct collection_item *event) { struct serial_data *serialized_data; int error = EOK; @@ -70,10 +72,18 @@ static int stderr_sink_format(struct data_descriptor *dblock,struct collection_i serialized_data = (struct serial_data *)(dblock->internal_data); - /* Traverse collection */ - error = traverse_collection(event,ELAPI_TRAVERSE_DEFAULT | ELAPI_TRAVERSE_END ,serialize,(void *)(serialized_data)); + if(format_str != NULL) { + /* Use format string */ + DEBUG_STRING("Using format:",format_str); + error = serialize_with_format(event,format_str,serialized_data); + } + else { + /* Traverse collection */ + DEBUG_STRING("Using default serialization callback",""); + error = traverse_collection(event,ELAPI_TRAVERSE_DEFAULT | ELAPI_TRAVERSE_END ,serialize,(void *)(serialized_data)); + } if(error) { - DEBUG_NUMBER("traverse_collection returned error",error); + DEBUG_NUMBER("Serialization returned error",error); return error; } |