Make more log levels on exception 92/75992/1
authorKyungwook Tak <k.tak@samsung.com>
Wed, 22 Jun 2016 09:42:59 +0000 (18:42 +0900)
committerKyungwook Tak <k.tak@samsung.com>
Wed, 22 Jun 2016 09:42:59 +0000 (18:42 +0900)
Change-Id: Idad383a7b0f757f263138efb7bf601d66d67b2b8
Signed-off-by: Kyungwook Tak <k.tak@samsung.com>
src/framework/client/async-logic.cpp
src/framework/common/audit/logger.h
src/framework/common/exception.cpp
src/framework/common/exception.h
src/framework/service/cs-loader.cpp
src/framework/service/cs-logic.cpp
src/framework/service/file-system.cpp
src/framework/service/server-service.cpp
src/framework/service/wp-loader.cpp

index e6c18ab..42d417a 100644 (file)
@@ -94,7 +94,7 @@ void AsyncLogic::scanFiles(const StrSet &fileSet)
 {
        for (const auto &file : fileSet) {
                if (this->m_handle->isStopped())
-                       ThrowExc(-999, "Async op cancelled!");
+                       ThrowExcInfo(-999, "Async op cancelled!");
 
                auto ret = this->m_dispatcher->methodCall<std::pair<int, CsDetected *>>(
                                           CommandId::SCAN_FILE, this->m_ctx, file);
index de4a71c..b19f84b 100644 (file)
@@ -62,17 +62,16 @@ public:
 #define FORMAT(ITEMS) \
        (static_cast<std::ostringstream &>(std::ostringstream() << ITEMS)).str()
 
-#define LOG(LEVEL, MESSAGE) Csr::Audit::Logger::log(                   \
-               Csr::Audit::LogLevel::LEVEL, __FILENAME__, __LINE__, __func__, \
-               FORMAT(MESSAGE))
+#define LOG(LEVEL, MESSAGE) Csr::Audit::Logger::log(              \
+               LEVEL, __FILENAME__, __LINE__, __func__, FORMAT(MESSAGE)) \
 
-#define ERROR(MESSAGE) LOG(Error, MESSAGE)
-#define WARN(MESSAGE)  LOG(Warning, MESSAGE)
-#define INFO(MESSAGE)  LOG(Info, MESSAGE)
+#define ERROR(MESSAGE) LOG(Csr::Audit::LogLevel::Error, MESSAGE)
+#define WARN(MESSAGE)  LOG(Csr::Audit::LogLevel::Warning, MESSAGE)
+#define INFO(MESSAGE)  LOG(Csr::Audit::LogLevel::Info, MESSAGE)
 
 #if !defined(NDEBUG)
-#define DEBUG(MESSAGE) LOG(Debug, MESSAGE)
-#define TRACE(MESSAGE) LOG(Trace, MESSAGE)
+#define DEBUG(MESSAGE) LOG(Csr::Audit::LogLevel::Debug, MESSAGE)
+#define TRACE(MESSAGE) LOG(Csr::Audit::LogLevel::Trace, MESSAGE)
 #else
 #define DEBUG(MESSAGE) do {} while (false)
 #define TRACE(MESSAGE) do {} while (false)
index 1c77ffb..10abb9c 100644 (file)
 namespace Csr {
 
 Exception::Exception(int ec, const char *file, const char *function, unsigned int line,
-                                        const std::string &message) noexcept :
+                                        Audit::LogLevel level, const std::string &message) noexcept :
        m_ec(ec),
        m_message(FORMAT("[" << file << ":" << line << " " << function << "()]" << message))
 {
-       ERROR(this->m_message);
+       LOG(level, this->m_message);
 }
 
 const char *Exception::what() const noexcept
index 6879c28..86ed4ff 100644 (file)
@@ -35,7 +35,7 @@ namespace Csr {
 class API Exception : public std::exception {
 public:
        Exception(int ec, const char *file, const char *function, unsigned int line,
-                         const std::string &message) noexcept;
+                         Audit::LogLevel level, const std::string &message) noexcept;
        virtual ~Exception() = default;
        virtual const char *what() const noexcept final;
 
@@ -48,5 +48,11 @@ protected:
 
 } // namespace Csr
 
-#define ThrowExc(ec, MESSAGE) \
-       throw Csr::Exception(ec, __FILE__, __FUNCTION__, __LINE__, FORMAT(MESSAGE))
+#define __CSR_THROW(ec, LEVEL, MESSAGE)                                \
+       throw Csr::Exception(ec, __FILE__, __FUNCTION__, __LINE__,         \
+                                                Csr::Audit::LogLevel::LEVEL, FORMAT(MESSAGE))
+
+#define ThrowExc(ec, MESSAGE)      __CSR_THROW(ec, Error, MESSAGE)
+#define ThrowExcWarn(ec, MESSAGE)  __CSR_THROW(ec, Warning, MESSAGE)
+#define ThrowExcInfo(ec, MESSAGE)  __CSR_THROW(ec, Info, MESSAGE)
+#define ThrowExcDebug(ec, MESSAGE) __CSR_THROW(ec, Debug, MESSAGE)
index 79dea5f..524b0b7 100644 (file)
@@ -254,8 +254,8 @@ void CsLoader::init(const std::string &enginePath, const std::string &roResDir,
        void *handle = dlopen(enginePath.c_str(), RTLD_LAZY);
 
        if (handle == nullptr)
-               ThrowExc(CSR_ERROR_ENGINE_NOT_EXIST, "engine dlopen error. path: " << enginePath <<
-                                " errno: " << errno);
+               ThrowExcWarn(CSR_ERROR_ENGINE_NOT_EXIST, "engine dlopen error. path: " <<
+                                        enginePath << " errno: " << errno);
 
        this->m_pc.dlhandle = handle;
 
index 26c6f76..b4da90d 100644 (file)
@@ -115,7 +115,7 @@ std::string canonicalizePath(const std::string &path, bool checkAccess)
        if (checkAccess && !isReadable(path)) {
                const int err = errno;
                if (err == ENOENT)
-                       ThrowExc(CSR_ERROR_FILE_DO_NOT_EXIST, "File do not exist: " << target);
+                       ThrowExcWarn(CSR_ERROR_FILE_DO_NOT_EXIST, "File do not exist: " << target);
                else if (err == EACCES)
                        ThrowExc(CSR_ERROR_PERMISSION_DENIED,
                                         "Perm denied to get real path: " << target);
index 668061e..a87ce29 100644 (file)
@@ -252,7 +252,8 @@ FilePtr File::createInternal(const std::string &fpath, time_t modifiedSince,
        auto statptr = getStat(fpath);
 
        if (statptr == nullptr)
-               ThrowExc(CSR_ERROR_FILE_DO_NOT_EXIST, "file not exist or no permission: " << fpath);
+               ThrowExcWarn(CSR_ERROR_FILE_DO_NOT_EXIST, "file not exist or no permission: " <<
+                                        fpath);
        else if (!S_ISREG(statptr->st_mode) && !S_ISDIR(statptr->st_mode))
                ThrowExc(CSR_ERROR_FILE_SYSTEM, "file type is not reguler or dir: " << fpath);
 
@@ -278,7 +279,8 @@ FsVisitorPtr FsVisitor::create(const std::string &dirpath, time_t modifiedSince)
 {
        auto statptr = getStat(dirpath);
        if (statptr == nullptr)
-               ThrowExc(CSR_ERROR_FILE_DO_NOT_EXIST, "directory not exist or no permission: " << dirpath);
+               ThrowExcWarn(CSR_ERROR_FILE_DO_NOT_EXIST, "directory not exist or no "
+                                        "permission: " << dirpath);
        else if (!S_ISDIR(statptr->st_mode))
                ThrowExc(CSR_ERROR_FILE_SYSTEM, "file type is not directory: " << dirpath);
        else
index 6263815..b60f3bb 100644 (file)
@@ -91,16 +91,16 @@ ServerService::ServerService() : Service(), m_workqueue(5)
                this->m_cs = std::make_shared<CsLoader>(CS_ENGINE_PATH, ENGINE_DIR,
                                                                                                ENGINE_RW_WORKING_DIR);
        } catch (const Exception &e) {
-               ERROR("Excetpion in content screening loader: " << e.what() <<
-                         " error: " << e.error() << " treat it as ENGINE_NOT_EXIST.");
+               WARN("Excetpion in content screening loader: " << e.what() <<
+                        " error: " << e.error() << " treat it as ENGINE_NOT_EXIST.");
        }
 
        try {
                this->m_wp = std::make_shared<WpLoader>(WP_ENGINE_PATH, ENGINE_DIR,
                                                                                                ENGINE_RW_WORKING_DIR);
        } catch (const Exception &e) {
-               ERROR("Exception in web protection loader: " << e.what() <<
-                         " error: " << e.error() << " treat it as ENGINE_NOT_EXIST.");
+               WARN("Exception in web protection loader: " << e.what() <<
+                        " error: " << e.error() << " treat it as ENGINE_NOT_EXIST.");
        }
 
        this->m_cslogic.reset(new CsLogic(this->m_cs, this->m_db));
index 6c95d2e..755ae59 100644 (file)
@@ -205,8 +205,8 @@ void WpLoader::init(const std::string &enginePath, const std::string &roResDir,
        void *handle = dlopen(enginePath.c_str(), RTLD_LAZY);
 
        if (handle == nullptr)
-               ThrowExc(CSR_ERROR_ENGINE_NOT_EXIST, "engine dlopen error. path: " << enginePath <<
-                                " errno: " << errno);
+               ThrowExcWarn(CSR_ERROR_ENGINE_NOT_EXIST, "engine dlopen error. path: " <<
+                                        enginePath << " errno: " << errno);
 
        this->m_pc.dlhandle = handle;