diff options
author | Lutz Bichler <Lutz.Bichler@bmw.de> | 2020-10-27 10:02:03 +0100 |
---|---|---|
committer | Lutz Bichler <Lutz.Bichler@bmw.de> | 2020-10-27 10:02:03 +0100 |
commit | 89720d3c63bbd22cbccc80cdc92c2f2dd20193ba (patch) | |
tree | 591c45dba85c98fdd8e141827bdb6e82aaad4f59 /src/CommonAPI/LoggerImpl.cpp | |
parent | 99ebf3461f51e4899f06457d6aafdaa4adecd278 (diff) | |
download | genivi-common-api-runtime-master.tar.gz |
Diffstat (limited to 'src/CommonAPI/LoggerImpl.cpp')
-rw-r--r-- | src/CommonAPI/LoggerImpl.cpp | 200 |
1 files changed, 0 insertions, 200 deletions
diff --git a/src/CommonAPI/LoggerImpl.cpp b/src/CommonAPI/LoggerImpl.cpp deleted file mode 100644 index fabb109..0000000 --- a/src/CommonAPI/LoggerImpl.cpp +++ /dev/null @@ -1,200 +0,0 @@ -// Copyright (C) 2015-2017 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/. - -#include <iostream> - -#include <CommonAPI/LoggerImpl.hpp> -#ifdef USE_DLT -#include <CommonAPI/Runtime.hpp> -#endif - -namespace CommonAPI { - -#if defined(USE_CONSOLE) || defined(USE_FILE) -std::mutex LoggerImpl::mutex_; -#endif - -#ifdef USE_CONSOLE -bool LoggerImpl::useConsole_(true); -#endif - -#ifdef USE_FILE -std::shared_ptr<std::ofstream> LoggerImpl::file_; -#endif - -#ifdef USE_DLT -bool LoggerImpl::useDlt_(false); -#endif - -#if defined(USE_CONSOLE) || defined(USE_FILE) || defined(USE_DLT) -LoggerImpl::Level LoggerImpl::maximumLogLevel_(LoggerImpl::Level::LL_INFO); -#endif - -LoggerImpl::LoggerImpl() { -#ifdef USE_DLT - if (useDlt_) { - std::string app = Runtime::getProperty("LogApplication"); - if (!app.empty()) { - ownAppID_ = true; - DLT_REGISTER_APP(app.c_str(), "CommonAPI Application"); - } - - std::string context = Runtime::getProperty("LogContext"); - if (context == "") context = "CAPI"; - DLT_REGISTER_CONTEXT(dlt_, context.c_str(), "CAPI"); - } -#endif -} - -LoggerImpl::~LoggerImpl() { -#ifdef USE_DLT - if (useDlt_) { - DLT_UNREGISTER_CONTEXT(dlt_); - if (ownAppID_) { - DLT_UNREGISTER_APP(); - } - } -#endif -} - -LoggerImpl* LoggerImpl::get() { - static LoggerImpl theLoggerImpl; - return &theLoggerImpl; -} - - -void -LoggerImpl::init(bool _useConsole, const std::string &_fileName, bool _useDlt, const std::string &_level) { -#ifdef USE_CONSOLE - useConsole_ = _useConsole; -#else - (void)_useConsole; -#endif -#ifdef USE_FILE - if (_fileName != "") { - file_ = std::make_shared<std::ofstream>(); - if (file_) - file_->open(_fileName.c_str(), std::ofstream::out | std::ofstream::app); - } -#else - (void)_fileName; -#endif -#ifdef USE_DLT - useDlt_ = _useDlt; -#else - (void)_useDlt; -#endif -#if defined(USE_CONSOLE) || defined(USE_FILE) || defined(USE_DLT) - maximumLogLevel_ = stringAsLevel(_level); -#else - (void)_level; -#endif -} - -void -LoggerImpl::doLog(Level _level, const std::string &_message) { -#ifdef USE_CONSOLE - if (useConsole_) { - std::lock_guard<std::mutex> itsLock(mutex_); - std::cerr << "[CAPI][" << levelAsString(_level) << "] " << _message << std::endl; - } -#endif -#ifdef USE_FILE - if (file_ && file_->is_open()) { - std::lock_guard<std::mutex> itsLock(mutex_); - (*(file_.get())) << "[CAPI][" << levelAsString(_level) << "] " << _message << std::endl; - } -#endif -#ifdef USE_DLT - if (useDlt_) { - DLT_LOG_STRING(dlt_, levelAsDlt(_level), _message.c_str()); - } -#endif -#if !defined(USE_CONSOLE) && !defined(USE_FILE) && !defined(USE_DLT) - (void)_level; - (void)_message; -#endif -} - -#if defined(USE_CONSOLE) || defined(USE_FILE) || defined(USE_DLT) -LoggerImpl::Level -LoggerImpl::stringAsLevel(const std::string &_level) { - if (_level == "fatal") - return Level::LL_FATAL; - - if (_level == "error") - return Level::LL_ERROR; - - if (_level == "warning") - return Level::LL_WARNING; - - if (_level == "info") - return Level::LL_INFO; - - if (_level == "debug") - return Level::LL_DEBUG; - - if (_level == "verbose") - return Level::LL_VERBOSE; - - return Level::LL_INFO; -} -#endif - -#if defined(USE_CONSOLE) || defined(USE_FILE) -std::string -LoggerImpl::levelAsString(LoggerImpl::Level _level) { - switch (_level) { - case Level::LL_FATAL: - return "FATAL"; - case Level::LL_ERROR: - return "ERROR"; - case Level::LL_WARNING: - return "WARNING"; - case Level::LL_INFO: - return "INFO"; - case Level::LL_DEBUG: - return "DEBUG"; - case Level::LL_VERBOSE: - return "VERBOSE"; - default: - return ""; - } -} -#endif - -#ifdef USE_DLT -DltLogLevelType -LoggerImpl::levelAsDlt(LoggerImpl::Level _level) { - switch (_level) { - case Level::LL_FATAL: - return DLT_LOG_FATAL; - case Level::LL_ERROR: - return DLT_LOG_ERROR; - case Level::LL_WARNING: - return DLT_LOG_WARN; - case Level::LL_INFO: - return DLT_LOG_INFO; - case Level::LL_DEBUG: - return DLT_LOG_DEBUG; - case Level::LL_VERBOSE: - return DLT_LOG_VERBOSE; - default: - return DLT_LOG_DEFAULT; - } -} -#endif - -bool -LoggerImpl::isLogged(LoggerImpl::Level _level) { -#if defined(USE_CONSOLE) || defined(USE_FILE) || defined(USE_DLT) - return (_level <= maximumLogLevel_) ? true : false; -#else - (void)_level; - return false; -#endif -} - -} // namespace CommonAPI |