diff --git a/CHANGELOG.md b/CHANGELOG.md index 0df3e9ca62920214f8930fae45bf9b41f93c06a4..bb4d896fdbf54b12d7a1afa4a774a5766b9ac90d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -33,6 +33,7 @@ Please mark all change in change log and use the issue from GitHub ## Improvement - \#221 Refactor LOG macro +- \#833 Catch exception in RolloutHandler and output in stderr - \#1796 Compile Openblas with source code to improve the performance - \#2039 Support Milvus run on SSE CPUs - \#2149 Merge server_cpu_config.template and server_gpu_config.template diff --git a/core/src/utils/LogUtil.cpp b/core/src/utils/LogUtil.cpp index 8e485e49c3b86702bf222add847223c089ddf2b1..617e8dbb03a8c6683ce94b5452b5c445be46f04f 100644 --- a/core/src/utils/LogUtil.cpp +++ b/core/src/utils/LogUtil.cpp @@ -56,63 +56,66 @@ RolloutHandler(const char* filename, std::size_t size, el::Level level) { int ret; std::string m(std::string(dir) + "/" + s); s = m; - switch (level) { - case el::Level::Debug: { - s.append("." + std::to_string(++debug_idx)); - ret = rename(m.c_str(), s.c_str()); - // std::cout << "debug_idx:" << debug_idx << ", logs_delete_exceeds:" << logs_delete_exceeds << std::endl; - if (debug_idx - logs_delete_exceeds > 0) { - std::string to_delete = m + "." + std::to_string(debug_idx - logs_delete_exceeds); - // std::cout << "remote " << to_delete << std::endl; - boost::filesystem::remove(to_delete); + try { + switch (level) { + case el::Level::Debug: { + s.append("." + std::to_string(++debug_idx)); + ret = rename(m.c_str(), s.c_str()); + if (debug_idx - logs_delete_exceeds > 0) { + std::string to_delete = m + "." + std::to_string(debug_idx - logs_delete_exceeds); + // std::cout << "remote " << to_delete << std::endl; + boost::filesystem::remove(to_delete); + } + break; } - break; - } - case el::Level::Warning: { - s.append("." + std::to_string(++warning_idx)); - ret = rename(m.c_str(), s.c_str()); - if (warning_idx - logs_delete_exceeds > 0) { - std::string to_delete = m + "." + std::to_string(warning_idx - logs_delete_exceeds); - boost::filesystem::remove(to_delete); + case el::Level::Warning: { + s.append("." + std::to_string(++warning_idx)); + ret = rename(m.c_str(), s.c_str()); + if (warning_idx - logs_delete_exceeds > 0) { + std::string to_delete = m + "." + std::to_string(warning_idx - logs_delete_exceeds); + boost::filesystem::remove(to_delete); + } + break; } - break; - } - case el::Level::Trace: { - s.append("." + std::to_string(++trace_idx)); - ret = rename(m.c_str(), s.c_str()); - if (trace_idx - logs_delete_exceeds > 0) { - std::string to_delete = m + "." + std::to_string(trace_idx - logs_delete_exceeds); - boost::filesystem::remove(to_delete); + case el::Level::Trace: { + s.append("." + std::to_string(++trace_idx)); + ret = rename(m.c_str(), s.c_str()); + if (trace_idx - logs_delete_exceeds > 0) { + std::string to_delete = m + "." + std::to_string(trace_idx - logs_delete_exceeds); + boost::filesystem::remove(to_delete); + } + break; } - break; - } - case el::Level::Error: { - s.append("." + std::to_string(++error_idx)); - ret = rename(m.c_str(), s.c_str()); - if (error_idx - logs_delete_exceeds > 0) { - std::string to_delete = m + "." + std::to_string(error_idx - logs_delete_exceeds); - boost::filesystem::remove(to_delete); + case el::Level::Error: { + s.append("." + std::to_string(++error_idx)); + ret = rename(m.c_str(), s.c_str()); + if (error_idx - logs_delete_exceeds > 0) { + std::string to_delete = m + "." + std::to_string(error_idx - logs_delete_exceeds); + boost::filesystem::remove(to_delete); + } + break; } - break; - } - case el::Level::Fatal: { - s.append("." + std::to_string(++fatal_idx)); - ret = rename(m.c_str(), s.c_str()); - if (fatal_idx - logs_delete_exceeds > 0) { - std::string to_delete = m + "." + std::to_string(fatal_idx - logs_delete_exceeds); - boost::filesystem::remove(to_delete); + case el::Level::Fatal: { + s.append("." + std::to_string(++fatal_idx)); + ret = rename(m.c_str(), s.c_str()); + if (fatal_idx - logs_delete_exceeds > 0) { + std::string to_delete = m + "." + std::to_string(fatal_idx - logs_delete_exceeds); + boost::filesystem::remove(to_delete); + } + break; } - break; - } - default: { - s.append("." + std::to_string(++global_idx)); - ret = rename(m.c_str(), s.c_str()); - if (global_idx - logs_delete_exceeds > 0) { - std::string to_delete = m + "." + std::to_string(global_idx - logs_delete_exceeds); - boost::filesystem::remove(to_delete); + default: { + s.append("." + std::to_string(++global_idx)); + ret = rename(m.c_str(), s.c_str()); + if (global_idx - logs_delete_exceeds > 0) { + std::string to_delete = m + "." + std::to_string(global_idx - logs_delete_exceeds); + boost::filesystem::remove(to_delete); + } + break; } - break; } + } catch (const std::exception& exc) { + std::cerr << exc.what() << ". Exception throws from RolloutHandler." << std::endl; } }