summaryrefslogtreecommitdiffstats
path: root/sinks/stderr/elapi_sink_stderr.c
diff options
context:
space:
mode:
Diffstat (limited to 'sinks/stderr/elapi_sink_stderr.c')
-rw-r--r--sinks/stderr/elapi_sink_stderr.c18
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;
}