summaryrefslogtreecommitdiff
path: root/interface/vsomeip/internal/logger.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'interface/vsomeip/internal/logger.hpp')
-rw-r--r--interface/vsomeip/internal/logger.hpp77
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_