Antkeeper  0.0.1
logger.hpp
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2023 Christopher J. Howard
3  *
4  * This file is part of Antkeeper source code.
5  *
6  * Antkeeper source code is free software: you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation, either version 3 of the License, or
9  * (at your option) any later version.
10  *
11  * Antkeeper source code is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with Antkeeper source code. If not, see <http://www.gnu.org/licenses/>.
18  */
19 
20 #ifndef ANTKEEPER_DEBUG_LOGGER_HPP
21 #define ANTKEEPER_DEBUG_LOGGER_HPP
22 
26 #include <source_location>
27 #include <string>
28 
29 namespace debug {
30 
33 
37 class logger
38 {
39 public:
47  void log
48  (
49  std::string&& message,
51  std::source_location&& location = std::source_location::current()
52  );
53 
55  [[nodiscard]] inline ::event::channel<message_logged_event>& get_message_logged_channel() noexcept
56  {
57  return m_message_logged_publisher.channel();
58  }
59 
60 private:
61  ::event::publisher<message_logged_event> m_message_logged_publisher;
62 };
63 
65 
66 } // namespace debug
67 
68 #endif // ANTKEEPER_DEBUG_LOGGER_HPP
Generates an event each time a message logged.
Definition: logger.hpp:38
void log(std::string &&message, log_message_severity severity=log_message_severity::info, std::source_location &&location=std::source_location::current())
Logs a message.
Definition: logger.cpp:26
::event::channel< message_logged_event > & get_message_logged_channel() noexcept
Returns the channel through which message logged events are published.
Definition: logger.hpp:55
Publishes messages to subscribers.
Definition: publisher.hpp:36
Debugging functions and classes.
Definition: cli.cpp:22
log_message_severity
Log message severity levels.
@ info
Info message severity.