]> git.itanic.dy.fi Git - rrdd/blob - debug.c
config: Fix copy paste errors in error messages
[rrdd] / debug.c
1 #include <time.h>
2 #include <unistd.h>
3 #include <stdarg.h>
4 #include "process.h"
5
6 #include "debug.h"
7
8 const char red_color[] = {
9         0x1b, 0x5b, 0x30, 0x3b, 0x33, 0x31, 0x3b, 0x34, 0x30, 0x6d, 0x0,
10 };
11
12 const char green_color[] = {
13         0x1b, 0x5b, 0x30, 0x3b, 0x33, 0x32, 0x3b, 0x34, 0x30, 0x6d, 0x0,
14 };
15
16 const char normal_color[] = {
17         0x1b, 0x5b, 0x30, 0x3b, 0x33, 0x37, 0x3b, 0x34, 0x30, 0x6d, 0x0,
18 };
19
20 int trace_level = 1;
21
22 static const char *assign_color(int color)
23 {
24         switch (color) {
25         case 1:
26                 return red_color;
27         case 2:
28                 return green_color;
29         default:
30                 return normal_color;
31         }
32 }
33
34 void print_trace(const char *file, int line, int color, int l,
35                 const char *fmt, ...)
36 {
37         va_list args;
38         time_t t = time(0);
39         char time[32];
40         char trace[1024];
41         const char *color_str = assign_color(color);
42
43         if (l > trace_level)
44                 return;
45
46         va_start(args, fmt);
47         vsnprintf(trace, sizeof(trace), fmt, args);
48         va_end(args);
49
50         strftime(time, sizeof(time), "%d.%m.%Y %T", localtime(&t));
51
52         fprintf(stderr, "%s%s [%5d.%d] %s:%d %s %s",
53                 color_str, time,
54                 getpid(), get_parent_count(),
55                 file, line, normal_color, trace);
56         fflush(stderr);
57 }