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