@@ -486,7 +486,7 @@ int flb_log_set_file(struct flb_config *config, char *out)
486
486
struct flb_log_metrics * flb_log_metrics_create ()
487
487
{
488
488
struct flb_log_metrics * metrics ;
489
- int i ;
489
+ int log_message_type ;
490
490
const char * message_type_str ;
491
491
uint64_t ts ;
492
492
int ret ;
@@ -498,8 +498,8 @@ struct flb_log_metrics *flb_log_metrics_create()
498
498
}
499
499
500
500
metrics -> cmt = cmt_create ();
501
- if (! metrics -> cmt ) {
502
- flb_free (metrics );
501
+ if (metrics -> cmt != NULL ) {
502
+ flb_log_metrics_destroy (metrics );
503
503
return NULL ;
504
504
}
505
505
@@ -510,18 +510,14 @@ struct flb_log_metrics *flb_log_metrics_create()
510
510
"Total number of logs" ,
511
511
1 , (char * []) {"message_type" });
512
512
if (metrics -> logs_total_counter == NULL ) {
513
- cmt_destroy (metrics -> cmt );
514
- flb_free (metrics );
513
+ flb_log_metrics_destroy (metrics );
515
514
return NULL ;
516
515
}
517
516
518
- /*
519
- * Initialize counters for all log message types to 0.
520
- * This assumes types are contiguous starting at 1 (FLB_LOG_ERROR).
521
- */
517
+ /* Initialize counters for log message types to 0. */
522
518
ts = cfl_time_now ();
523
- for (i = 1 ; ; i ++ ) {
524
- message_type_str = flb_log_message_type_str (i );
519
+ for (log_message_type = FLB_LOG_ERROR ; log_message_type <= FLB_LOG_TRACE ; log_message_type ++ ) {
520
+ message_type_str = flb_log_message_type_str (log_message_type );
525
521
if (!message_type_str ) {
526
522
break ;
527
523
}
@@ -531,9 +527,7 @@ struct flb_log_metrics *flb_log_metrics_create()
531
527
0 ,
532
528
1 , (char * []) {message_type_str });
533
529
if (ret == -1 ) {
534
- cmt_counter_destroy (metrics -> logs_total_counter );
535
- cmt_destroy (metrics -> cmt );
536
- flb_free (metrics );
530
+ flb_log_metrics_destroy (metrics );
537
531
return NULL ;
538
532
}
539
533
}
@@ -544,9 +538,12 @@ struct flb_log_metrics *flb_log_metrics_create()
544
538
/* Frees the metrics instance and its associated resources. */
545
539
void flb_log_metrics_destroy (struct flb_log_metrics * metrics )
546
540
{
547
- cmt_counter_destroy (metrics -> logs_total_counter );
548
- cmt_destroy (metrics -> cmt );
549
- flb_free (metrics );
541
+ if (metrics != NULL && metrics -> cmt != NULL ) {
542
+ cmt_destroy (metrics -> cmt );
543
+ }
544
+ if (metrics != NULL ) {
545
+ flb_free (metrics );
546
+ }
550
547
}
551
548
552
549
@@ -832,7 +829,7 @@ void flb_log_print(int type, const char *file, int line, const char *fmt, ...)
832
829
ts ,
833
830
1 , (char * []) {msg_type_str });
834
831
if (ret == -1 ) {
835
- // Not using flb_log_debug to avoid recursing into this same function.
832
+ /* Not using flb_log_debug to avoid recursing into this same function. */
836
833
fprintf (stderr ,
837
834
"[log] failed to increment log total counter for message type '%s' (error=%d)\n" ,
838
835
msg_type_str , ret );
0 commit comments