24
|
1 #include <stdio.h> |
|
2 #include <stdlib.h> |
77
|
3 #include <string.h> |
24
|
4 #include <stdarg.h> |
|
5 #include <time.h> |
|
6 |
|
7 /* Variables globales a UTILS.C */ |
76
|
8 static int DebugEnabled; |
77
|
9 static char *FName; |
24
|
10 |
|
11 void ut_InitDebug(int level) |
|
12 { |
77
|
13 FILE *fp; |
|
14 |
|
15 FName = getenv("HOME"); |
|
16 if (!FName) |
|
17 FName = "/tmp/mcabberlog"; |
|
18 else { |
|
19 char *tmpname = malloc(strlen(FName) + 12); |
|
20 strcpy(tmpname, FName); |
|
21 strcat(tmpname, "/mcabberlog"); |
|
22 FName = tmpname; |
|
23 } |
24
|
24 |
|
25 DebugEnabled = level; |
76
|
26 |
77
|
27 fp = fopen(FName, "w"); |
76
|
28 if (!fp) return; |
24
|
29 fprintf(fp, "Debugging mode started...\n" |
|
30 "-----------------------------------\n"); |
|
31 fclose(fp); |
|
32 } |
|
33 |
|
34 void ut_WriteLog(const char *fmt, ...) |
|
35 { |
|
36 FILE *fp = NULL; |
|
37 time_t ahora; |
|
38 va_list ap; |
|
39 char *buffer = NULL; |
|
40 |
|
41 if (DebugEnabled) { |
77
|
42 fp = fopen(FName, "a+"); |
76
|
43 if (!fp) return; |
24
|
44 buffer = (char *) calloc(1, 64); |
|
45 |
|
46 ahora = time(NULL); |
|
47 strftime(buffer, 64, "[%H:%M:%S] ", localtime(&ahora)); |
|
48 fprintf(fp, "%s", buffer); |
|
49 |
|
50 va_start(ap, fmt); |
|
51 vfprintf(fp, fmt, ap); |
|
52 va_end(ap); |
|
53 |
|
54 free(buffer); |
|
55 fclose(fp); |
|
56 } |
|
57 } |
|
58 |