]> Shamusworld >> Repos - virtualjaguar/blob - log.cpp
282898cc199c0fc090a841e766b8562458e64a13
[virtualjaguar] / log.cpp
1 //
2 // Log handler
3 //
4 // by cal2
5 // GCC/SDL port by Niels Wagenaar (Linux/WIN32) and Caz (BeOS)
6 // Cleanups/new stuff by James L. Hammons
7 //
8
9 #include "log.h"
10
11 FILE * log_stream = NULL;
12
13 int log_init(char * path)
14 {
15         log_stream = fopen(path, "wrt");
16
17         if (log_stream == NULL)
18                 return 0;
19
20         return 1;
21 }
22
23 FILE * log_get(void)
24 {
25         return log_stream;
26 }
27
28 void log_done(void)
29 {
30         fclose(log_stream);
31 }
32
33 //
34 // This logger is used mainly to ensure that text gets written to the log file
35 // even if the program crashes. The performance hit is acceptable in this case!
36 //
37 void WriteLog(const char * text, ...)
38 {
39         va_list arg;
40
41         va_start(arg, text);
42         vfprintf(log_stream, text, arg);
43         va_end(arg);
44         fflush(log_stream);                                     // Make sure that text is written!
45 }