From bee088b8e7a47decb0bb811acffe1d646ddb1425 Mon Sep 17 00:00:00 2001 From: Dariusz Michaluk Date: Mon, 2 May 2016 09:03:15 +0200 Subject: [PATCH] Revert "Completely remove dlog remainings" This reverts commit 756ca93d1b5cb1024919aae81723a7a03434c9a3. Change-Id: Ic05a47a70cdce84b88fdd1727dff1d8747f05d9c --- packaging/security-manager.spec | 1 + src/common/CMakeLists.txt | 2 + src/dpl/log/include/dpl/log/dlog_log_provider.h | 74 ++++++++++++++++ src/dpl/log/src/dlog_log_provider.cpp | 109 ++++++++++++++++++++++++ 4 files changed, 186 insertions(+) create mode 100644 src/dpl/log/include/dpl/log/dlog_log_provider.h create mode 100644 src/dpl/log/src/dlog_log_provider.cpp diff --git a/packaging/security-manager.spec b/packaging/security-manager.spec index 396b734..cf4f921 100755 --- a/packaging/security-manager.spec +++ b/packaging/security-manager.spec @@ -13,6 +13,7 @@ Requires(post): sqlite3 Requires(post): smack BuildRequires: cmake BuildRequires: zip +# BuildRequires: pkgconfig(dlog) BuildRequires: libattr-devel BuildRequires: pkgconfig(libsmack) BuildRequires: pkgconfig(libcap) diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt index 45b3d83..7b41cf2 100644 --- a/src/common/CMakeLists.txt +++ b/src/common/CMakeLists.txt @@ -9,6 +9,7 @@ PKG_CHECK_MODULES(COMMON_DEP cynara-admin cynara-client-async libtzplatform-config +# dlog ) FIND_PACKAGE(Boost REQUIRED) @@ -28,6 +29,7 @@ INCLUDE_DIRECTORIES( SET(COMMON_SOURCES ${DPL_PATH}/log/src/abstract_log_provider.cpp +# ${DPL_PATH}/log/src/dlog_log_provider.cpp ${DPL_PATH}/log/src/sd_journal_provider.cpp ${DPL_PATH}/log/src/log.cpp ${DPL_PATH}/log/src/old_style_log_provider.cpp diff --git a/src/dpl/log/include/dpl/log/dlog_log_provider.h b/src/dpl/log/include/dpl/log/dlog_log_provider.h new file mode 100644 index 0000000..b5e39fc --- /dev/null +++ b/src/dpl/log/include/dpl/log/dlog_log_provider.h @@ -0,0 +1,74 @@ +/* + * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved + * + * 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. + */ +/* + * @file dlog_log_provider.h + * @author Przemyslaw Dobrowolski (p.dobrowolsk@samsung.com) + * @version 1.0 + * @brief This file is the implementation file of DLOG log provider + */ +#ifndef SECURITYMANAGER_DLOG_LOG_PROVIDER_H +#define SECURITYMANAGER_DLOG_LOG_PROVIDER_H + +#include +#include +#include + +namespace SecurityManager { +namespace Log { +class DLOGLogProvider : + public AbstractLogProvider +{ + private: + std::unique_ptr m_tag; + + static std::string FormatMessage(const char *message, + const char *filename, + int line, + const char *function); + + public: + DLOGLogProvider(); + virtual ~DLOGLogProvider(); + + virtual void Debug(const char *message, + const char *fileName, + int line, + const char *function); + virtual void Info(const char *message, + const char *fileName, + int line, + const char *function); + virtual void Warning(const char *message, + const char *fileName, + int line, + const char *function); + virtual void Error(const char *message, + const char *fileName, + int line, + const char *function); + virtual void Pedantic(const char *message, + const char *fileName, + int line, + const char *function); + + // Set global Tag according to DLOG + void SetTag(const char *tag); +}; + +} // namespace Log +} // namespace SecurityManager + +#endif // SECURITYMANAGER_DLOG_LOG_PROVIDER_H diff --git a/src/dpl/log/src/dlog_log_provider.cpp b/src/dpl/log/src/dlog_log_provider.cpp new file mode 100644 index 0000000..79a7fd4 --- /dev/null +++ b/src/dpl/log/src/dlog_log_provider.cpp @@ -0,0 +1,109 @@ +/* + * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved + * + * 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. + */ +/* + * @file dlog_log_provider.cpp + * @author Przemyslaw Dobrowolski (p.dobrowolsk@samsung.com) + * @version 1.0 + * @brief This file is the implementation file of DLOG log provider + */ +#include +#include +#include +#include +#include + +#define UNUSED __attribute__((unused)) + +namespace SecurityManager { +namespace Log { +std::string DLOGLogProvider::FormatMessage(const char *message, + const char *filename, + int line, + const char *function) +{ + std::ostringstream val; + + val << std::string("[") << + LocateSourceFileName(filename) << std::string(":") << line << + std::string("] ") << function << std::string("(): ") << message; + + return val.str(); +} + +DLOGLogProvider::DLOGLogProvider() +{} + +DLOGLogProvider::~DLOGLogProvider() +{} + +void DLOGLogProvider::SetTag(const char *tag) +{ + size_t size = strlen(tag)+1; + char *buff = new (std::nothrow) char[size]; + if (buff) + memcpy(buff, tag, size); + m_tag.reset(buff); +} + +void DLOGLogProvider::Debug(const char *message, + const char *filename, + int line, + const char *function) +{ + SLOG(LOG_DEBUG, m_tag.get(), "%s", + FormatMessage(message, filename, line, function).c_str()); +} + +void DLOGLogProvider::Info(const char *message, + const char *filename, + int line, + const char *function) +{ + SLOG(LOG_INFO, m_tag.get(), "%s", + FormatMessage(message, filename, line, function).c_str()); +} + +void DLOGLogProvider::Warning(const char *message, + const char *filename, + int line, + const char *function) +{ + SLOG(LOG_WARN, m_tag.get(), "%s", + FormatMessage(message, filename, line, function).c_str()); +} + +void DLOGLogProvider::Error(const char *message, + const char *filename, + int line, + const char *function) +{ + SLOG(LOG_ERROR, m_tag.get(), "%s", + FormatMessage(message, filename, line, function).c_str()); +} + +void DLOGLogProvider::Pedantic(const char *message, + const char *filename, + int line, + const char *function) +{ + SLOG(LOG_DEBUG, "SecurityManager", "%s", FormatMessage(message, + filename, + line, + function).c_str()); +} + +} // nemespace Log +} // namespace SecurityManager -- 2.7.4