31template <
typename Lock >
46 template<
typename Message_Builder >
48 trace( Message_Builder && msg_builder )
53 template<
typename Message_Builder >
55 info( Message_Builder && msg_builder )
60 template<
typename Message_Builder >
62 warn( Message_Builder && msg_builder )
67 template<
typename Message_Builder >
69 error( Message_Builder && msg_builder )
78 std::lock_guard< Lock > lock{
m_lock };
80 namespace stdchrono = std::chrono;
82 auto now = stdchrono::system_clock::now();
83 auto ms = stdchrono::duration_cast<
84 stdchrono::milliseconds >( now.time_since_epoch() );
85 std::time_t unix_time = stdchrono::duration_cast<
86 stdchrono::seconds >( ms ).count();
90 "[{:%Y-%m-%d %H:%M:%S}.{:03d}] {}: {}",
92 static_cast< int >( ms.count() % 1000u ),
ostream_logger_t(std::ostream &out) noexcept
void trace(Message_Builder &&msg_builder)
ostream_logger_t() noexcept
void info(Message_Builder &&msg_builder)
void log_message(const char *tag, const std::string &msg)
void error(Message_Builder &&msg_builder)
void warn(Message_Builder &&msg_builder)
ostream_logger_t & operator=(const ostream_logger_t &)=delete
ostream_logger_t(const ostream_logger_t &)=delete
A special wrapper around fmtlib include files.
Definition of null_mutex.
std::tm make_localtime(std::time_t t)