annotate server/web_logmachine.cpp @ 0:a4671277546c tip

created the repository for the thymian project
author ferencd
date Tue, 17 Aug 2021 11:19:54 +0200
parents
children
rev   line source
ferencd@0 1 #include "web_logmachine.h"
ferencd@0 2
ferencd@0 3 #include <cxxtools/log/cxxtools.h>
ferencd@0 4
ferencd@0 5 #include <map>
ferencd@0 6
ferencd@0 7 namespace
ferencd@0 8 {
ferencd@0 9
ferencd@0 10 cxxtools::Logger* getLogger()
ferencd@0 11 {
ferencd@0 12 static cxxtools::Logger* logger = nullptr;
ferencd@0 13 if (!::cxxtools::LoggerManager::isEnabled())
ferencd@0 14 {
ferencd@0 15 return nullptr;
ferencd@0 16 }
ferencd@0 17 if (logger == nullptr)
ferencd@0 18 {
ferencd@0 19 logger = ::cxxtools::LoggerManager::getInstance().getLogger("application");
ferencd@0 20 }
ferencd@0 21 return logger;
ferencd@0 22 }
ferencd@0 23
ferencd@0 24 void do_log(cxxtools::Logger::log_level_type level, const std::string& msg)
ferencd@0 25 {
ferencd@0 26 cxxtools::Logger* _cxxtools_logger = getLogger();
ferencd@0 27 if (_cxxtools_logger != nullptr && _cxxtools_logger->isEnabled(level))
ferencd@0 28 {
ferencd@0 29 ::cxxtools::LogMessage _cxxtools_logMessage(_cxxtools_logger, level);
ferencd@0 30 _cxxtools_logMessage.out() << msg;
ferencd@0 31 _cxxtools_logMessage.finish();
ferencd@0 32 }
ferencd@0 33 }
ferencd@0 34
ferencd@0 35 }
ferencd@0 36
ferencd@0 37 web_logmachine::web_logmachine()
ferencd@0 38 {
ferencd@0 39 static bool log_inited = false;
ferencd@0 40 if(!log_inited)
ferencd@0 41 {
ferencd@0 42 log_init("log_conf.xml");
ferencd@0 43 log_inited = true;
ferencd@0 44 }
ferencd@0 45 }
ferencd@0 46
ferencd@0 47 void web_logmachine::do_log(unafrog::log::LogLevel level, const std::string &message) noexcept
ferencd@0 48 {
ferencd@0 49 static std::map<unafrog::log::LogLevel, ::cxxtools::Logger::log_level_type> levelMap{
ferencd@0 50 {unafrog::log::LogLevel::LOG_EMERGENCY, ::cxxtools::Logger::LOG_LEVEL_FATAL},
ferencd@0 51 {unafrog::log::LogLevel::LOG_CRITICAL, ::cxxtools::Logger::LOG_LEVEL_FATAL},
ferencd@0 52 {unafrog::log::LogLevel::LOG_ERROR, ::cxxtools::Logger::LOG_LEVEL_ERROR},
ferencd@0 53 {unafrog::log::LogLevel::LOG_WARNING, ::cxxtools::Logger::LOG_LEVEL_WARN},
ferencd@0 54 {unafrog::log::LogLevel::LOG_INFORMATION, ::cxxtools::Logger::LOG_LEVEL_INFO},
ferencd@0 55 {unafrog::log::LogLevel::LOG_DEBUG, ::cxxtools::Logger::LOG_LEVEL_DEBUG},
ferencd@0 56 {unafrog::log::LogLevel::LOG_TRACE, ::cxxtools::Logger::LOG_LEVEL_TRACE}
ferencd@0 57 };
ferencd@0 58
ferencd@0 59 ::do_log(levelMap[level], message);
ferencd@0 60 }