X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=extras%2Fvom%2Fvom%2Flogger.cpp;fp=extras%2Fvom%2Fvom%2Flogger.cpp;h=0000000000000000000000000000000000000000;hb=8c1afb56b6a479d6595444238815c4ced0e754ea;hp=80f2d92c6035a6293cf2aa63adbc6e34dc4b5c12;hpb=fbe4e36b9924c135410e1d52c959d0c3629be12b;p=vpp.git diff --git a/extras/vom/vom/logger.cpp b/extras/vom/vom/logger.cpp deleted file mode 100644 index 80f2d92c603..00000000000 --- a/extras/vom/vom/logger.cpp +++ /dev/null @@ -1,170 +0,0 @@ -/* - * Copyright (c) 2017 Cisco and/or its affiliates. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at: - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include -#include -#include - -#include - -#include "vom/logger.hpp" - -namespace VOM { -const log_level_t log_level_t::CRITICAL(4, "critical"); -const log_level_t log_level_t::ERROR(3, "error"); -const log_level_t log_level_t::WARNING(2, "warning"); -const log_level_t log_level_t::INFO(1, "info"); -const log_level_t log_level_t::DEBUG(0, "debug"); - -log_level_t::log_level_t(int v, const std::string& s) - : enum_base(v, s) -{ -} - -static log_t slog; - -log_t& -logger() -{ - return slog; -} - -log_t::log_t() - : m_level(log_level_t::ERROR) - , m_handler(new cout_handler()) -{ -} - -void -log_t::set(const log_level_t& level) -{ - m_level = level; -} - -void -log_t::set(handler* h) -{ - m_handler = h; -} - -void -log_t::write(const std::string& file, - const int line, - const std::string& function, - const log_level_t& level, - const std::string& message) -{ - m_handler->handle_message(file, line, function, level, message); -} - -/** - * The configured level - */ -const log_level_t& -log_t::level() const -{ - return (m_level); -} - -static std::string -get_filename(const std::string& file) -{ - std::vector dirs; - boost::split(dirs, file, boost::is_any_of("/")); - - return dirs.back(); -} - -log_t::entry::entry(const char* file, - const char* function, - int line, - const log_level_t& level) - : m_file(get_filename(file)) - , m_function(function) - , m_level(level) - , m_line(line) -{ -} - -log_t::entry::~entry() -{ - logger().write(m_file, m_line, m_function, m_level, m_stream.str()); -} - -std::stringstream& -log_t::entry::stream() -{ - return (m_stream); -} - -static std::string -get_timestamp() -{ - auto end = std::chrono::system_clock::now(); - auto end_time = std::chrono::system_clock::to_time_t(end); - - /* - * put-time is not support in gcc in 4.8 - * so we play this dance with ctime - */ - std::string display = std::ctime(&end_time); - display.pop_back(); - - return (display); -} - -file_handler::file_handler(const std::string& ofile) -{ - m_file_stream.open(ofile); -} - -file_handler::~file_handler() -{ - m_file_stream.close(); -} - -void -file_handler::handle_message(const std::string& file, - const int line, - const std::string& function, - const log_level_t& level, - const std::string& message) -{ - m_file_stream << get_timestamp(); - m_file_stream << " [" << level.to_string() << "]" << file << ":" << line - << " " << function << "() " << message << std::endl; -} - -void -cout_handler::handle_message(const std::string& file, - const int line, - const std::string& function, - const log_level_t& level, - const std::string& message) -{ - std::cout << get_timestamp(); - std::cout << " [" << level.to_string() << "]" << file << ":" << line << " " - << function << "() " << message << std::endl; -} - -}; // namespace VOM - -/* - * fd.io coding-style-patch-verification: ON - * - * Local Variables: - * eval: (c-set-style "mozilla") - * End: - */