diff options
author | Damjan Marion <damarion@cisco.com> | 2018-04-25 19:11:15 +0200 |
---|---|---|
committer | Neale Ranns <nranns@cisco.com> | 2018-04-27 11:35:07 +0000 |
commit | 164e5f8c63652028ecb9c3570e1ea8618b163071 (patch) | |
tree | 7423f5abbc61b761df9a679c7974f17613736020 /src/vpp-api/vom/logger.cpp | |
parent | aa682a39b76ee043f65313f23e134bf18fe7a47e (diff) |
Move VOM to extras/vom
Change-Id: Iea174f03dfba3bd06024db0f0cc373532300dcae
Signed-off-by: Damjan Marion <damarion@cisco.com>
Diffstat (limited to 'src/vpp-api/vom/logger.cpp')
-rw-r--r-- | src/vpp-api/vom/logger.cpp | 170 |
1 files changed, 0 insertions, 170 deletions
diff --git a/src/vpp-api/vom/logger.cpp b/src/vpp-api/vom/logger.cpp deleted file mode 100644 index 80f2d92c603..00000000000 --- a/src/vpp-api/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 <chrono> -#include <ctime> -#include <vector> - -#include <boost/algorithm/string.hpp> - -#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<log_level_t>(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<std::string> 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: - */ |