X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flog.cpp;h=15b2384d0099f7e9b2770734ce8ce60a1835b5a3;hb=b74298f2a4540168f8e4a2bbc9fc6fdc7f4afa57;hp=144eb3bfa3fbe838f8512659014a134f9daa64c9;hpb=2acc4f075932e711cfacd198672f7c99ea4b853e;p=virtualjaguar diff --git a/src/log.cpp b/src/log.cpp index 144eb3b..15b2384 100644 --- a/src/log.cpp +++ b/src/log.cpp @@ -1,20 +1,33 @@ // // Log handler // -// by Cal2 +// Originally by David Raingeard (Cal2) // GCC/SDL port by Niels Wagenaar (Linux/WIN32) and Caz (BeOS) // Cleanups/new stuff by James L. Hammons +// (C) 2010 Underground Software +// +// JLH = James L. Hammons +// +// Who When What +// --- ---------- ------------------------------------------------------------- +// JLH 01/16/2010 Created this log ;-) +// JLH 07/11/2011 Instead of dumping out on max log file size being reached, we +// now just silently ignore any more output. 10 megs ought to be +// enough for anybody. ;-) // -#include "types.h" #include "log.h" +#include +#include +#include "types.h" + #define MAX_LOG_SIZE 10000000 // Maximum size of log file (10 MB) static FILE * log_stream = NULL; static uint32 logSize = 0; -int log_init(char * path) +int LogInit(const char * path) { log_stream = fopen(path, "wrt"); @@ -24,14 +37,15 @@ int log_init(char * path) return 1; } -FILE * log_get(void) +FILE * LogGet(void) { return log_stream; } -void log_done(void) +void LogDone(void) { - fclose(log_stream); + if (log_stream != NULL) + fclose(log_stream); } // @@ -41,16 +55,24 @@ void log_done(void) void WriteLog(const char * text, ...) { va_list arg; - va_start(arg, text); + + if (log_stream == NULL) + { + va_end(arg); + return; + } + logSize += vfprintf(log_stream, text, arg); if (logSize > MAX_LOG_SIZE) { fflush(log_stream); fclose(log_stream); - exit(1); - } + // Instead of dumping out, we just close the file and ignore any more output. + log_stream = NULL; +// exit(1); + }//*/ va_end(arg); fflush(log_stream); // Make sure that text is written!