1.1 --- a/core/Logger.cpp Sun Aug 26 20:12:30 2007 +0000
1.2 +++ b/core/Logger.cpp Mon Aug 27 02:00:37 2007 +0000
1.3 @@ -228,6 +228,39 @@
1.4 _CloseFile();
1.5 }
1.6
1.7 +void Logger::LogToOpenFile(FILE *fp, const char *msg, ...)
1.8 +{
1.9 + if (!m_Active)
1.10 + {
1.11 + return;
1.12 + }
1.13 +
1.14 + va_list ap;
1.15 + va_start(ap, msg);
1.16 + LogToOpenFileEx(fp, msg, ap);
1.17 + va_end(ap);
1.18 +}
1.19 +
1.20 +void Logger::LogToOpenFileEx(FILE *fp, const char *msg, va_list ap)
1.21 +{
1.22 + if (!m_Active)
1.23 + {
1.24 + return;
1.25 + }
1.26 +
1.27 + char buffer[3072];
1.28 + UTIL_FormatArgs(buffer, sizeof(buffer), msg, ap);
1.29 +
1.30 + char date[32];
1.31 + time_t t;
1.32 + GetAdjustedTime(&t);
1.33 + tm *curtime = localtime(&t);
1.34 + strftime(date, sizeof(date), "%m/%d/%Y - %H:%M:%S", curtime);
1.35 +
1.36 + fprintf(fp, "L %s: %s\n", date, buffer);
1.37 + g_SMAPI->ConPrintf("L %s: %s\n", date, buffer);
1.38 +}
1.39 +
1.40 void Logger::LogMessage(const char *vafmt, ...)
1.41 {
1.42 if (!m_Active)
1.43 @@ -250,17 +283,9 @@
1.44 _NewMapFile();
1.45 }
1.46
1.47 - char msg[3072];
1.48 - va_list ap;
1.49 - va_start(ap, vafmt);
1.50 - vsnprintf(msg, sizeof(msg), vafmt, ap);
1.51 - va_end(ap);
1.52 -
1.53 - char date[32];
1.54 time_t t;
1.55 GetAdjustedTime(&t);
1.56 tm *curtime = localtime(&t);
1.57 - strftime(date, sizeof(date), "%m/%d/%Y - %H:%M:%S", curtime);
1.58
1.59 FILE *fp = NULL;
1.60 if (m_Mode == LoggingMode_PerMap)
1.61 @@ -291,16 +316,20 @@
1.62 {
1.63 if (m_DailyPrintHdr)
1.64 {
1.65 + char date[32];
1.66 m_DailyPrintHdr = false;
1.67 + strftime(date, sizeof(date), "%m/%d/%Y - %H:%M:%S", curtime);
1.68 fprintf(fp, "L %s: SourceMod log file session started (file \"L%04d%02d%02d.log\") (Version \"%s\")\n", date, curtime->tm_year + 1900, curtime->tm_mon + 1, curtime->tm_mday, SVN_FULL_VERSION);
1.69 }
1.70 - fprintf(fp, "L %s: %s\n", date, msg);
1.71 + va_list ap;
1.72 + va_start(ap, vafmt);
1.73 + LogToOpenFileEx(fp, vafmt, ap);
1.74 + va_end(ap);
1.75 fclose(fp);
1.76 } else {
1.77 goto print_error;
1.78 }
1.79
1.80 - g_SMAPI->ConPrintf("L %s: %s\n", date, msg);
1.81 return;
1.82 print_error:
1.83 g_SMAPI->ConPrint("[SM] Unexpected fatal logging error. SourceMod logging disabled.\n");
1.84 @@ -318,9 +347,6 @@
1.85 GetAdjustedTime(&t);
1.86 tm *curtime = localtime(&t);
1.87
1.88 - char date[32];
1.89 - strftime(date, sizeof(date), "%m/%d/%Y - %H:%M:%S", curtime);
1.90 -
1.91 if (curtime->tm_mday != m_CurDay)
1.92 {
1.93 char _filename[256];
1.94 @@ -330,30 +356,27 @@
1.95 m_ErrMapStart = false;
1.96 }
1.97
1.98 - char msg[3072];
1.99 - va_list ap;
1.100 - va_start(ap, vafmt);
1.101 - vsnprintf(msg, sizeof(msg), vafmt, ap);
1.102 - va_end(ap);
1.103 -
1.104 FILE *fp = fopen(m_ErrFileName.c_str(), "a+");
1.105 if (fp)
1.106 {
1.107 if (!m_ErrMapStart)
1.108 {
1.109 + char date[32];
1.110 + strftime(date, sizeof(date), "%m/%d/%Y - %H:%M:%S", curtime);
1.111 fprintf(fp, "L %s: SourceMod error session started\n", date);
1.112 fprintf(fp, "L %s: Info (map \"%s\") (file \"errors_%04d%02d%02d.log\")\n", date, m_CurMapName.c_str(), curtime->tm_year + 1900, curtime->tm_mon + 1, curtime->tm_mday);
1.113 m_ErrMapStart = true;
1.114 }
1.115 - fprintf(fp, "L %s: %s\n", date, msg);
1.116 + va_list ap;
1.117 + va_start(ap, vafmt);
1.118 + LogToOpenFileEx(fp, vafmt, ap);
1.119 + va_end(ap);
1.120 fclose(fp);
1.121 } else {
1.122 g_SMAPI->ConPrint("[SM] Unexpected fatal logging error. SourceMod logging disabled.\n");
1.123 m_Active = false;
1.124 return;
1.125 }
1.126 -
1.127 - g_SMAPI->ConPrintf("L %s: %s\n", date, msg);
1.128 }
1.129
1.130 void Logger::MapChange(const char *mapname)