void AppenderFile::_write(LogMessage const& message) { bool exceedMaxSize = maxFileSize > 0 && (fileSize.value() + message.Size()) > maxFileSize; if (dynamicName) { char namebuf[TRINITY_PATH_MAX]; snprintf(namebuf, TRINITY_PATH_MAX, filename.c_str(), message.param1.c_str()); // always use "a" with dynamic name otherwise it could delete the log we wrote in last _write() call FILE* file = OpenFile(namebuf, "a", backup || exceedMaxSize); if (!file) return; fprintf(file, "%s%s", message.prefix.c_str(), message.text.c_str()); fflush(file); fileSize += uint64(message.Size()); fclose(file); return; } else if (exceedMaxSize) logfile = OpenFile(filename, "w", true); if (!logfile) return; fprintf(logfile, "%s%s", message.prefix.c_str(), message.text.c_str()); fflush(logfile); fileSize += uint64(message.Size()); }
void AppenderFile::_write(LogMessage const& message) { bool exceedMaxSize = maxFileSize > 0 && (fileSize.value() + message.Size()) > maxFileSize; if (dynamicName) { char namebuf[TRINITY_PATH_MAX]; snprintf(namebuf, TRINITY_PATH_MAX, filename.c_str(), message.param1.c_str()); logfile = OpenFile(namebuf, mode, backup || exceedMaxSize); } else if (exceedMaxSize) logfile = OpenFile(filename, "w", true); if (!logfile) return; fprintf(logfile, "%s%s", message.prefix.c_str(), message.text.c_str()); fflush(logfile); fileSize += uint64(message.Size()); if (dynamicName) CloseFile(); }