void log_file_removeAllLogFiles() { while (!log_file_getLogFiles().empty()) { const logFiles_t::const_iterator lfi = log_file_getLogFiles().begin(); log_file_removeLogFile(lfi->first.c_str()); } }
void log_file_removeLogFile(const char* filePath) { assert(filePath != NULL); logFiles_t& logFiles = log_file_getLogFiles(); const std::string filePathStr = filePath; const logFiles_t::iterator lfi = logFiles.find(filePathStr); if (lfi == logFiles.end()) { // we are not logging to this file return; } // turn off logging to this file FILE* tmpStream = lfi->second.GetOutStream(); logFiles.erase(lfi); fclose(tmpStream); tmpStream = NULL; }
void log_file_addLogFile(const char* filePath, const char* sections, int minLevel) { assert(filePath != NULL); logFiles_t& logFiles = log_file_getLogFiles(); const std::string filePathStr = filePath; const logFiles_t::const_iterator lfi = logFiles.find(filePathStr); if (lfi != logFiles.end()) { // we are already logging to this file return; } FILE* tmpStream = fopen(filePath, "w"); if (tmpStream == NULL) { LOG_L(L_ERROR, "Failed to open log file for writing: %s", filePath); return; } const std::string sectionsStr = (sections == NULL) ? "" : sections; logFiles[filePathStr] = LogFileDetails(tmpStream, sectionsStr, minLevel); }