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
|