1#ifndef __LOGGER_CONSOLE_HPP__
2#define __LOGGER_CONSOLE_HPP__
4#include <common/logger.hpp>
8#include <source_location>
25 void debug(std::string_view message)
final;
26 void print(std::string_view prefix, std::string_view message)
final;
27 void alert(std::string_view prefix,std::string_view message)
final;
28 void error(std::string_view message,std::source_location location =std::source_location::current()) final;
31 void raw_log(std::string_view message) final;
85 class RedirectGuard :
public std::enable_shared_from_this<RedirectGuard>
~Console() override=default
Console & operator=(const Console &)=delete
void toggle_alert() final
Definition logger.cpp:229
void alert(std::string_view prefix, std::string_view message) final
Definition logger.cpp:186
void toggle_error() final
Definition logger.cpp:234
void toggle_debug() final
Definition logger.cpp:213
void debug(std::string_view message) final
Definition logger.cpp:167
std::ostream & err_output
Definition console.hpp:47
void error(std::string_view message, std::source_location location=std::source_location::current()) final
Definition logger.cpp:195
void toggle_print() final
Definition logger.cpp:224
std::ostream & get_output()
Definition console.hpp:39
Console & operator=(Console &&)=delete
uint32_t flags
Definition console.hpp:45
Console()
Definition logger.cpp:150
void toggle_all() final
Definition logger.cpp:219
std::ostream & output
Definition console.hpp:46
void print(std::string_view prefix, std::string_view message) final
Definition logger.cpp:177
void raw_log(std::string_view message) final
Definition logger.cpp:205
Console(const Console &)=delete
Console(Console &&)=delete
std::shared_ptr< bool > active_flag
Definition console.hpp:106
RedirectHandle redirect_to_file()
Definition logger.cpp:73
void restore()
Definition logger.cpp:105
bool has_been_redirected
Definition console.hpp:101
std::optional< std::string > getCapturedOutput() const
Definition logger.cpp:132
std::stringstream buffer
Definition console.hpp:103
RedirectGuard()
Definition logger.cpp:45
int original_stdout_fd
Definition console.hpp:104
std::streambuf * coutbuf
Definition console.hpp:102
RedirectHandle redirect()
Definition logger.cpp:49
friend class RedirectHandle
Definition console.hpp:99
RedirectionType type
Definition console.hpp:82
RedirectHandle(RedirectHandle &&)=default
RedirectHandle & operator=(const RedirectHandle &)=delete
std::shared_ptr< RedirectGuard > owner_ptr
Definition console.hpp:79
~RedirectHandle()
Definition logger.cpp:142
std::shared_ptr< bool > active_flag
Definition console.hpp:80
RedirectHandle(const RedirectHandle &)=delete
bool owns_guard
Definition console.hpp:81
RedirectHandle(std::shared_ptr< RedirectGuard > owner, std::shared_ptr< bool > active_flag, bool owns, RedirectionType _type)
Definition logger.cpp:36
RedirectHandle & operator=(RedirectHandle &&)=default
Definition impl_post_process.hpp:12
RedirectionType
Definition console.hpp:55
@ File
Definition console.hpp:57
@ Buffer
Definition console.hpp:56