@@ -54,13 +54,22 @@ static void free_tags_copy(char **tags, unsigned int tags_length) {
5454 free (tags );
5555}
5656
57- static void free_pending_message (char * level , char * message , char * * tags ,
57+ static void free_pending_message (char * message , char * * tags ,
5858 unsigned int tags_length ) {
59- free ((void * )level );
6059 free ((void * )message );
6160 free_tags_copy (tags , tags_length );
6261}
6362
63+ const char * unifex_log_level_to_string (UnifexLogLevel level ) {
64+ switch (level ) {
65+ case UNIFEX_LOG_LEVEL_DEBUG : return "debug" ;
66+ case UNIFEX_LOG_LEVEL_INFO : return "info" ;
67+ case UNIFEX_LOG_LEVEL_WARN : return "warning" ;
68+ case UNIFEX_LOG_LEVEL_ERROR : return "error" ;
69+ default : return "unknown" ;
70+ }
71+ }
72+
6473const char * unifex_logger_get_target () { return target_pid_name ; }
6574
6675uint64_t unifex_logger_get_timestamp () {
@@ -113,7 +122,7 @@ void unifex_logger_cleanup() {
113122 pthread_cond_destroy (& queue .cond );
114123}
115124
116- bool unifex_log (const char * level , const char * message , const char * * tags ,
125+ bool unifex_log (UnifexLogLevel level , const char * message , const char * * tags ,
117126 unsigned int tags_length ) {
118127 if (!message ) {
119128 return false;
@@ -131,7 +140,6 @@ bool unifex_log(const char *level, const char *message, const char **tags,
131140
132141 uint64_t timestamp = unifex_logger_get_timestamp ();
133142
134- char * level_copy = strdup (level );
135143 char * message_copy = strdup (message );
136144
137145 char * * tags_copy = NULL ;
@@ -150,8 +158,8 @@ bool unifex_log(const char *level, const char *message, const char **tags,
150158 }
151159 }
152160
153- if (!level_copy || ! message_copy || tags_alloc_failed ) {
154- free_pending_message (level_copy , message_copy , tags_copy , tags_length );
161+ if (!message_copy || tags_alloc_failed ) {
162+ free_pending_message (message_copy , tags_copy , tags_length );
155163 return false;
156164 }
157165
@@ -160,11 +168,11 @@ bool unifex_log(const char *level, const char *message, const char **tags,
160168 if (queue .count >= UNIFEX_LOGGER_MAX_QUEUE_SIZE ) {
161169 queue .dropped_count ++ ;
162170 pthread_mutex_unlock (& queue .mutex );
163- free_pending_message (level_copy , message_copy , tags_copy , tags_length );
171+ free_pending_message (message_copy , tags_copy , tags_length );
164172 return false;
165173 }
166174
167- queue .messages [queue .tail ].level = level_copy ;
175+ queue .messages [queue .tail ].level = level ;
168176 queue .messages [queue .tail ].message = message_copy ;
169177 queue .messages [queue .tail ].timestamp = timestamp ;
170178 queue .messages [queue .tail ].tags = tags_copy ;
@@ -213,7 +221,7 @@ void *unifex_logger_worker(void *arg) {
213221 send_log_func (global_env , batch [i ].level , batch [i ].message ,
214222 batch [i ].timestamp , batch [i ].tags , batch [i ].tags_length );
215223 }
216- free_pending_message (batch [i ].level , batch [ i ]. message , batch [i ].tags ,
224+ free_pending_message (batch [i ].message , batch [i ].tags ,
217225 batch [i ].tags_length );
218226 }
219227
0 commit comments