Public Member Functions | Protected Member Functions | Private Attributes | Friends | List of all members
spdlog::async_logger Class Referencefinal

#include <async_logger.h>

Inheritance diagram for spdlog::async_logger:
spdlog::logger

Public Member Functions

template<typename It >
 async_logger (std::string logger_name, It begin, It end, std::weak_ptr< details::thread_pool > tp, async_overflow_policy overflow_policy=async_overflow_policy::block)
 
 async_logger (std::string logger_name, sinks_init_list sinks_list, std::weak_ptr< details::thread_pool > tp, async_overflow_policy overflow_policy=async_overflow_policy::block)
 
 async_logger (std::string logger_name, sink_ptr single_sink, std::weak_ptr< details::thread_pool > tp, async_overflow_policy overflow_policy=async_overflow_policy::block)
 
std::shared_ptr< loggerclone (std::string new_name) override
 
- Public Member Functions inherited from spdlog::logger
 logger (std::string name, sink_ptr single_sink)
 
 logger (std::string name, sinks_init_list sinks)
 
template<typename It >
 logger (std::string name, It begin, It end)
 
virtual ~logger ()
 
 logger (const logger &)=delete
 
loggeroperator= (const logger &)=delete
 
template<typename... Args>
void log (level::level_enum lvl, const char *fmt, const Args &...args)
 
template<typename... Args>
void log (source_loc loc, level::level_enum lvl, const char *fmt, const Args &...args)
 
void log (level::level_enum lvl, const char *msg)
 
void log (source_loc loc, level::level_enum lvl, const char *msg)
 
template<typename... Args>
void trace (const char *fmt, const Args &...args)
 
template<typename... Args>
void debug (const char *fmt, const Args &...args)
 
template<typename... Args>
void info (const char *fmt, const Args &...args)
 
template<typename... Args>
void warn (const char *fmt, const Args &...args)
 
template<typename... Args>
void error (const char *fmt, const Args &...args)
 
template<typename... Args>
void critical (const char *fmt, const Args &...args)
 
template<class T , typename std::enable_if< std::is_convertible< T, spdlog::string_view_t >::value, T >::type * = nullptr>
void log (level::level_enum lvl, const T &)
 
template<class T , typename std::enable_if< std::is_convertible< T, spdlog::string_view_t >::value, T >::type * = nullptr>
void log (source_loc loc, level::level_enum lvl, const T &)
 
template<class T , typename std::enable_if<!std::is_convertible< T, spdlog::string_view_t >::value, T >::type * = nullptr>
void log (level::level_enum lvl, const T &)
 
template<class T , typename std::enable_if<!std::is_convertible< T, spdlog::string_view_t >::value, T >::type * = nullptr>
void log (source_loc loc, level::level_enum lvl, const T &)
 
template<typename T >
void trace (const T &msg)
 
template<typename T >
void debug (const T &msg)
 
template<typename T >
void info (const T &msg)
 
template<typename T >
void warn (const T &msg)
 
template<typename T >
void error (const T &msg)
 
template<typename T >
void critical (const T &msg)
 
bool should_log (level::level_enum msg_level) const
 
void set_level (level::level_enum log_level)
 
level::level_enum level () const
 
const std::stringname () const
 
void set_formatter (std::unique_ptr< formatter > formatter)
 
void set_pattern (std::string pattern, pattern_time_type time_type=pattern_time_type::local)
 
void flush ()
 
void flush_on (level::level_enum log_level)
 
level::level_enum flush_level () const
 
const std::vector< sink_ptr > & sinks () const
 
std::vector< sink_ptr > & sinks ()
 
void set_error_handler (log_err_handler err_handler)
 
log_err_handler error_handler () const
 

Protected Member Functions

void sink_it_ (details::log_msg &msg) override
 
void flush_ () override
 
void backend_log_ (const details::log_msg &incoming_log_msg)
 
void backend_flush_ ()
 
- Protected Member Functions inherited from spdlog::logger
bool should_flush_ (const details::log_msg &msg)
 
void default_err_handler_ (const std::string &msg)
 
void incr_msg_counter_ (details::log_msg &msg)
 

Private Attributes

std::weak_ptr< details::thread_poolthread_pool_
 
async_overflow_policy overflow_policy_
 

Friends

class details::thread_pool
 

Additional Inherited Members

- Static Public Member Functions inherited from spdlog::logger
static level::level_enum default_level ()
 
- Protected Attributes inherited from spdlog::logger
const std::string name_
 
std::vector< sink_ptrsinks_
 
spdlog::level_t level_ {spdlog::logger::default_level()}
 
spdlog::level_t flush_level_ {level::off}
 
log_err_handler err_handler_ {[this](const std::string &msg) { this->default_err_handler_(msg); }}
 
std::atomic< time_t > last_err_time_ {0}
 
std::atomic< size_t > msg_counter_ {1}
 

Detailed Description

Definition at line 43 of file async_logger.h.

Constructor & Destructor Documentation

template<typename It >
spdlog::async_logger::async_logger ( std::string  logger_name,
It  begin,
It  end,
std::weak_ptr< details::thread_pool tp,
async_overflow_policy  overflow_policy = async_overflow_policy::block 
)
inline

Definition at line 18 of file async_logger_impl.h.

20  : logger(std::move(logger_name), begin, end)
21  , thread_pool_(std::move(tp))
22  , overflow_policy_(overflow_policy)
23 {
24 }
async_overflow_policy overflow_policy_
Definition: async_logger.h:69
std::weak_ptr< details::thread_pool > thread_pool_
Definition: async_logger.h:68
decltype(auto) constexpr end(T &&obj)
ADL-aware version of std::end.
Definition: StdUtils.h:72
def move(depos, offset)
Definition: depos.py:107
decltype(auto) constexpr begin(T &&obj)
ADL-aware version of std::begin.
Definition: StdUtils.h:67
logger(std::string name, sink_ptr single_sink)
Definition: logger_impl.h:39
spdlog::async_logger::async_logger ( std::string  logger_name,
sinks_init_list  sinks_list,
std::weak_ptr< details::thread_pool tp,
async_overflow_policy  overflow_policy = async_overflow_policy::block 
)
inline

Definition at line 26 of file async_logger_impl.h.

28  : async_logger(std::move(logger_name), sinks_list.begin(), sinks_list.end(), std::move(tp), overflow_policy)
29 {
30 }
async_logger(std::string logger_name, It begin, It end, std::weak_ptr< details::thread_pool > tp, async_overflow_policy overflow_policy=async_overflow_policy::block)
def move(depos, offset)
Definition: depos.py:107
spdlog::async_logger::async_logger ( std::string  logger_name,
sink_ptr  single_sink,
std::weak_ptr< details::thread_pool tp,
async_overflow_policy  overflow_policy = async_overflow_policy::block 
)
inline

Definition at line 32 of file async_logger_impl.h.

34  : async_logger(std::move(logger_name), {std::move(single_sink)}, std::move(tp), overflow_policy)
35 {
36 }
async_logger(std::string logger_name, It begin, It end, std::weak_ptr< details::thread_pool > tp, async_overflow_policy overflow_policy=async_overflow_policy::block)
def move(depos, offset)
Definition: depos.py:107

Member Function Documentation

void spdlog::async_logger::backend_flush_ ( )
inlineprotected

Definition at line 90 of file async_logger_impl.h.

91 {
92  try
93  {
94  for (auto &sink : sinks_)
95  {
96  sink->flush();
97  }
98  }
100 }
#define SPDLOG_CATCH_AND_HANDLE
Definition: logger_impl.h:13
std::vector< sink_ptr > sinks_
Definition: logger.h:179
void spdlog::async_logger::backend_log_ ( const details::log_msg incoming_log_msg)
inlineprotected

Definition at line 70 of file async_logger_impl.h.

71 {
72  try
73  {
74  for (auto &s : sinks_)
75  {
76  if (s->should_log(incoming_log_msg.level))
77  {
78  s->log(incoming_log_msg);
79  }
80  }
81  }
83 
84  if (should_flush_(incoming_log_msg))
85  {
87  }
88 }
#define SPDLOG_CATCH_AND_HANDLE
Definition: logger_impl.h:13
std::vector< sink_ptr > sinks_
Definition: logger.h:179
bool should_flush_(const details::log_msg &msg)
Definition: logger_impl.h:353
static QCString * s
Definition: config.cpp:1042
std::shared_ptr< spdlog::logger > spdlog::async_logger::clone ( std::string  new_name)
inlineoverridevirtual

Reimplemented from spdlog::logger.

Definition at line 102 of file async_logger_impl.h.

103 {
104  auto cloned = std::make_shared<spdlog::async_logger>(std::move(new_name), sinks_.begin(), sinks_.end(), thread_pool_, overflow_policy_);
105 
106  cloned->set_level(this->level());
107  cloned->flush_on(this->flush_level());
108  cloned->set_error_handler(this->error_handler());
109  return std::move(cloned);
110 }
async_overflow_policy overflow_policy_
Definition: async_logger.h:69
level::level_enum flush_level() const
Definition: logger_impl.h:348
log_err_handler error_handler() const
Definition: logger_impl.h:329
std::weak_ptr< details::thread_pool > thread_pool_
Definition: async_logger.h:68
std::vector< sink_ptr > sinks_
Definition: logger.h:179
def move(depos, offset)
Definition: depos.py:107
level::level_enum level() const
Definition: logger_impl.h:364
void spdlog::async_logger::flush_ ( )
inlineoverrideprotectedvirtual

Reimplemented from spdlog::logger.

Definition at line 55 of file async_logger_impl.h.

56 {
57  if (auto pool_ptr = thread_pool_.lock())
58  {
59  pool_ptr->post_flush(shared_from_this(), overflow_policy_);
60  }
61  else
62  {
63  throw spdlog_ex("async flush: thread pool doesn't exist anymore");
64  }
65 }
async_overflow_policy overflow_policy_
Definition: async_logger.h:69
std::weak_ptr< details::thread_pool > thread_pool_
Definition: async_logger.h:68
void spdlog::async_logger::sink_it_ ( details::log_msg msg)
inlineoverrideprotectedvirtual

Reimplemented from spdlog::logger.

Definition at line 39 of file async_logger_impl.h.

40 {
41 #if defined(SPDLOG_ENABLE_MESSAGE_COUNTER)
43 #endif
44  if (auto pool_ptr = thread_pool_.lock())
45  {
46  pool_ptr->post_log(shared_from_this(), msg, overflow_policy_);
47  }
48  else
49  {
50  throw spdlog_ex("async log: thread pool doesn't exist anymore");
51  }
52 }
async_overflow_policy overflow_policy_
Definition: async_logger.h:69
void incr_msg_counter_(details::log_msg &msg)
Definition: logger_impl.h:419
void msg(const char *fmt,...)
Definition: message.cpp:107
std::weak_ptr< details::thread_pool > thread_pool_
Definition: async_logger.h:68

Friends And Related Function Documentation

friend class details::thread_pool
friend

Definition at line 45 of file async_logger.h.

Member Data Documentation

async_overflow_policy spdlog::async_logger::overflow_policy_
private

Definition at line 69 of file async_logger.h.

std::weak_ptr<details::thread_pool> spdlog::async_logger::thread_pool_
private

Definition at line 68 of file async_logger.h.


The documentation for this class was generated from the following files: