diff options
Diffstat (limited to 'interface/vsomeip/internal/logger.hpp')
-rw-r--r-- | interface/vsomeip/internal/logger.hpp | 77 |
1 files changed, 46 insertions, 31 deletions
diff --git a/interface/vsomeip/internal/logger.hpp b/interface/vsomeip/internal/logger.hpp index bbf8e65..db92b86 100644 --- a/interface/vsomeip/internal/logger.hpp +++ b/interface/vsomeip/internal/logger.hpp @@ -1,4 +1,4 @@ -// Copyright (C) 2014-2017 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) +// Copyright (C) 2020 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this // file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -6,46 +6,61 @@ #ifndef VSOMEIP_V3_LOGGER_HPP_ #define VSOMEIP_V3_LOGGER_HPP_ -#include <string> - -#ifdef _WIN32 -#include <iostream> -#endif +#include <chrono> +#include <cstdint> +#include <mutex> +#include <ostream> +#include <sstream> +#include <streambuf> #include <vsomeip/export.hpp> -#include <boost/log/sources/severity_logger.hpp> -#include <boost/log/trivial.hpp> - namespace vsomeip_v3 { +namespace logger { + +enum class VSOMEIP_IMPORT_EXPORT level_e : std::uint8_t { + LL_NONE = 0, + LL_FATAL = 1, + LL_ERROR = 2, + LL_WARNING = 3, + LL_INFO = 4, + LL_DEBUG = 5, + LL_VERBOSE = 6 +}; + +class message + : public std::ostream { -class VSOMEIP_IMPORT_EXPORT logger { public: - static std::shared_ptr<logger> get(); + VSOMEIP_IMPORT_EXPORT message(level_e _level); + VSOMEIP_IMPORT_EXPORT ~message(); - virtual ~logger() { - } +private: + class buffer : public std::streambuf { + public: + int_type overflow(int_type); + std::streamsize xsputn(const char *, std::streamsize); - virtual boost::log::sources::severity_logger_mt< - boost::log::trivial::severity_level> & get_internal() = 0; -}; + std::stringstream data_; + }; -#define VSOMEIP_LOG_DEFAULT_APPLICATION_ID "VSIP" -#define VSOMEIP_LOG_DEFAULT_APPLICATION_NAME "vSomeIP application|SysInfra|IPC" - -#define VSOMEIP_FATAL BOOST_LOG_SEV(vsomeip_v3::logger::get()->get_internal(), \ - boost::log::trivial::severity_level::fatal) -#define VSOMEIP_ERROR BOOST_LOG_SEV(vsomeip_v3::logger::get()->get_internal(), \ - boost::log::trivial::severity_level::error) -#define VSOMEIP_WARNING BOOST_LOG_SEV(vsomeip_v3::logger::get()->get_internal(), \ - boost::log::trivial::severity_level::warning) -#define VSOMEIP_INFO BOOST_LOG_SEV(vsomeip_v3::logger::get()->get_internal(), \ - boost::log::trivial::severity_level::info) -#define VSOMEIP_DEBUG BOOST_LOG_SEV(vsomeip_v3::logger::get()->get_internal(), \ - boost::log::trivial::severity_level::debug) -#define VSOMEIP_TRACE BOOST_LOG_SEV(vsomeip_v3::logger::get()->get_internal(), \ - boost::log::trivial::severity_level::trace) + std::chrono::system_clock::time_point when_; + buffer buffer_; + level_e level_; + static std::mutex mutex__; +}; +} // namespace logger } // namespace vsomeip_v3 +#define VSOMEIP_FATAL vsomeip_v3::logger::message(vsomeip_v3::logger::level_e::LL_FATAL) +#define VSOMEIP_ERROR vsomeip_v3::logger::message(vsomeip_v3::logger::level_e::LL_ERROR) +#define VSOMEIP_WARNING vsomeip_v3::logger::message(vsomeip_v3::logger::level_e::LL_WARNING) +#define VSOMEIP_INFO vsomeip_v3::logger::message(vsomeip_v3::logger::level_e::LL_INFO) +#define VSOMEIP_DEBUG vsomeip_v3::logger::message(vsomeip_v3::logger::level_e::LL_DEBUG) +#define VSOMEIP_TRACE vsomeip_v3::logger::message(vsomeip_v3::logger::level_e::LL_VERBOSE) + +#define VSOMEIP_LOG_DEFAULT_APPLICATION_ID "VSIP" +#define VSOMEIP_LOG_DEFAULT_APPLICATION_NAME "vSomeIP application|SysInfra|IPC" + #endif // VSOMEIP_V3_LOGGER_HPP_ |