logproviderimpl.hpp
Go to the documentation of this file.
1 /*
2 ** Author(s):
3 ** - Herve Cuche <hcuche@aldebaran-robotics.com>
4 ** - Matthieu Nottale <mnottale@aldebaran-robotics.com>
5 **
6 ** Copyright (C) 2013 Aldebaran Robotics
7 */
8 
9 #ifndef LOGPROVIDERIMPL_HPP_
10 #define LOGPROVIDERIMPL_HPP_
11 
12 #include <set>
13 
14 #include <boost/thread.hpp>
15 
16 #include <qi/log.hpp>
17 #include <qi/os.hpp>
18 #include <qi/periodictask.hpp>
19 
20 #include <qicore/api.hpp>
21 
22 #include <qicore/logmessage.hpp>
23 #include <qicore/loglistener.hpp>
24 #include <qicore/logmanager.hpp>
25 #include <qicore/logprovider.hpp>
26 
27 namespace qi
28 {
35 {
36 public:
38  explicit LogProviderImpl(LogManagerPtr logger);
39  ~LogProviderImpl() override;
40 
41  void setCategoryPrefix(const std::string& categoryPrefix) override;
42  void setLevel(qi::LogLevel level) override;
43  void addFilter(const std::string& filter, qi::LogLevel level) override;
44  void setFilters(const std::vector<std::pair<std::string, qi::LogLevel> >& filters) override;
45  void setLogger(LogManagerPtr logger) override;
46 
47 private:
48  void sendLogs();
49  void log(qi::LogLevel level,
50  const qi::Clock::time_point date,
51  const qi::SystemClock::time_point systemDate,
52  const char* category,
53  const char* message,
54  const char* file,
55  const char* function,
56  int line);
57 
58 private:
59  std::set<std::string> _setCategories;
60  boost::mutex _setCategoriesMutex;
62  qi::log::SubscriberId _subscriber;
63  qi::Atomic<int> _ready;
64  std::string _categoryPrefix;
65 
66  qi::PeriodicTask sendTask;
67 };
68 
69 class ModuleBuilder;
70 void registerLogProvider(qi::ModuleBuilder* mb);
71 
72 } // !qi
73 
74 #endif // !LOGPROVIDERIMPL_HPP_
qi::LogProviderImpl::_categoryPrefix
std::string _categoryPrefix
Definition: logproviderimpl.hpp:64
qi::LogProviderImpl::sendTask
qi::PeriodicTask sendTask
Definition: logproviderimpl.hpp:66
qi::LogProviderImpl::setLevel
void setLevel(qi::LogLevel level) override
Definition: logproviderimpl.cpp:209
qi::LogManagerPtr
qi::Object< LogManager > LogManagerPtr
Definition: logmanager.hpp:42
loglistener.hpp
qi::LogProviderImpl::_logger
LogManagerPtr _logger
Definition: logproviderimpl.hpp:61
qi::LogProviderImpl::sendLogs
void sendLogs()
Definition: logproviderimpl.cpp:144
qi::LogProviderImpl::_setCategoriesMutex
boost::mutex _setCategoriesMutex
Definition: logproviderimpl.hpp:60
api.hpp
qi::LogProviderImpl::setCategoryPrefix
void setCategoryPrefix(const std::string &categoryPrefix) override
Definition: logproviderimpl.cpp:203
logmessage.hpp
logprovider.hpp
qi::LogProviderImpl::_setCategories
std::set< std::string > _setCategories
Definition: logproviderimpl.hpp:59
qi
Definition: file.hpp:21
qi::LogProvider
Definition: logprovider.hpp:34
qi::LogProviderImpl::log
void log(qi::LogLevel level, const qi::Clock::time_point date, const qi::SystemClock::time_point systemDate, const char *category, const char *message, const char *file, const char *function, int line)
Definition: logproviderimpl.cpp:167
qi::LogProviderImpl::_subscriber
qi::log::SubscriberId _subscriber
Definition: logproviderimpl.hpp:62
qi::LogProviderImpl::setLogger
void setLogger(LogManagerPtr logger) override
Definition: logproviderimpl.cpp:139
qi::LogProviderImpl::LogProviderImpl
LogProviderImpl()
Definition: logproviderimpl.cpp:99
logmanager.hpp
qi::LogProviderImpl::_ready
qi::Atomic< int > _ready
Definition: logproviderimpl.hpp:63
qi::LogProviderImpl::setFilters
void setFilters(const std::vector< std::pair< std::string, qi::LogLevel > > &filters) override
Definition: logproviderimpl.cpp:225
qi::LogProviderImpl::addFilter
void addFilter(const std::string &filter, qi::LogLevel level) override
Definition: logproviderimpl.cpp:215
qi::LogProviderImpl::~LogProviderImpl
~LogProviderImpl() override
Definition: logproviderimpl.cpp:131
qi::registerLogProvider
void registerLogProvider(qi::ModuleBuilder *mb)
Definition: logproviderimpl.cpp:260
qi::LogProviderImpl
Definition: logproviderimpl.hpp:34


naoqi_libqicore
Author(s): Aldebaran
autogenerated on Wed Sep 14 2022 02:22:41