4 // Originally by David Raingeard (Cal2)
5 // GCC/SDL port by Niels Wagenaar (Linux/WIN32) and Caz (BeOS)
6 // Cleanups/new stuff by James Hammons
7 // (C) 2010 Underground Software
9 // JLH = James Hammons <jlhamm@acm.org>
12 // --- ---------- -------------------------------------------------------------
13 // JLH 01/16/2010 Created this log ;-)
14 // JLH 07/11/2011 Instead of dumping out on max log file size being reached, we
15 // now just silently ignore any more output. 10 megs ought to be
16 // enough for anybody. ;-) Except when it isn't. :-P
27 //#define MAX_LOG_SIZE 10000000 // Maximum size of log file (10 MB)
28 #define MAX_LOG_SIZE 100000000 // Maximum size of log file (100 MB)
30 static FILE * log_stream
= NULL
;
31 static uint32_t logSize
= 0;
33 int LogInit(const char * path
)
35 log_stream
= fopen(path
, "w");
37 if (log_stream
== NULL
)
50 if (log_stream
!= NULL
)
55 // This logger is used mainly to ensure that text gets written to the log file
56 // even if the program crashes. The performance hit is acceptable in this case!
58 void WriteLog(const char * text
, ...)
63 if (log_stream
== NULL
)
69 logSize
+= vfprintf(log_stream
, text
, arg
);
71 if (logSize
> MAX_LOG_SIZE
)
73 // Instead of dumping out, we just close the file and ignore any more output.
80 fflush(log_stream
); // Make sure that text is written!