LCOV - code coverage report
Current view: top level - src - log.cpp (source / functions) Hit Total Coverage
Test: coverage.info Lines: 22 39 56.4 %
Date: 2025-09-09 12:09:29 Functions: 3 4 75.0 %

          Line data    Source code
       1             : #include <ctime>
       2             : #include <unistd.h>
       3             : #include <stdarg.h>
       4             : 
       5             : 
       6             : #include "log.hpp"
       7             : 
       8             : 
       9             : static struct {
      10             :   int verbose;
      11             : } log_config;
      12             : 
      13             : 
      14          27 : void log_init(int verbose)
      15             : {
      16          27 :   log_config.verbose = verbose;
      17          27 : }
      18             : 
      19             : 
      20           0 : void _log_dump(const char* level, const char* filename, unsigned line, const char* functionname, int tid, const char *format, ...)
      21             : {
      22           0 :   va_list args;
      23           0 :   va_start(args, format);
      24             : 
      25           0 :   char timestamp[72];
      26           0 :   time_t ltime;
      27           0 :   ltime=time(NULL);
      28           0 :   struct tm *tm;
      29           0 :   tm=localtime(&ltime);
      30             : 
      31           0 :   sprintf(timestamp,"%04d-%02d-%02d %02d:%02d:%02d", tm->tm_year+1900, tm->tm_mon +1,
      32             :       tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec);
      33           0 :   fprintf(stderr, "%s [%s] ", timestamp, level);
      34             : 
      35           0 :   char msg[1024];
      36           0 :   vsnprintf(msg, 1024, format, args);
      37           0 :   fputs(msg, stderr);
      38           0 :   fputs("\n", stderr);
      39           0 :   fflush(stderr);
      40           0 :   va_end(args);
      41           0 : }
      42             : 
      43             : 
      44      125214 : void _log(const char* level, const char* filename, unsigned line, const char* functionname, int tid, const char *format, ...)
      45             : {
      46      125214 :   if (!log_config.verbose && !strcmp("DEBUG", level)) return;
      47             : 
      48       44440 :   va_list args;
      49       44440 :   va_start(args, format);
      50             : 
      51       44440 :   char timestamp[72];
      52       44440 :   time_t ltime;
      53       44440 :   ltime=time(NULL);
      54       44440 :   struct tm *tm;
      55       44440 :   tm=localtime(&ltime);
      56             : 
      57       44440 :   sprintf(timestamp,"%04d-%02d-%02d %02d:%02d:%02d", tm->tm_year+1900, tm->tm_mon +1,
      58             :       tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec);
      59             : 
      60       44440 :   printf("%s [%s] ", timestamp, level);
      61       44440 :   char msg[1024];
      62       44440 :   vsnprintf(msg, 1024, format, args);
      63             : 
      64       44440 :   puts(msg);
      65       44440 :   log_flush();
      66       44440 :   va_end(args);
      67             : }
      68             : 
      69       44440 : void log_flush()
      70             : {
      71       44440 :   fflush(stdout);
      72       44440 : }

Generated by: LCOV version 1.0