Logger System 0.1.3
High-performance C++20 thread-safe logging system with asynchronous capabilities
Loading...
Searching...
No Matches
kcenon::logger::routing::router_builder Class Reference

Builder for creating routing rules. More...

#include <log_router.h>

Collaboration diagram for kcenon::logger::routing::router_builder:
Collaboration graph

Classes

class  level_condition
 
class  regex_condition
 

Public Member Functions

 router_builder (log_router &router)
 
router_builderwhen_level (log_level level)
 
router_builderwhen_matches (const std::string &pattern)
 
router_builderroute_to (const std::string &writer_name, bool stop_propagation=false)
 
router_builderroute_to (const std::vector< std::string > &writer_names, bool stop_propagation=false)
 

Private Attributes

log_routerrouter_
 
route_config config_
 

Detailed Description

Builder for creating routing rules.

See also
log_router
route_config

Definition at line 108 of file log_router.h.

Constructor & Destructor Documentation

◆ router_builder()

kcenon::logger::routing::router_builder::router_builder ( log_router & router)
inlineexplicit

Definition at line 114 of file log_router.h.

114: router_(router) {}

Member Function Documentation

◆ route_to() [1/2]

router_builder & kcenon::logger::routing::router_builder::route_to ( const std::string & writer_name,
bool stop_propagation = false )
inline

Definition at line 126 of file log_router.h.

126 {
127 config_.writer_names.push_back(writer_name);
128 config_.stop_propagation = stop_propagation;
129 router_.add_route(std::move(config_));
130 return *this;
131 }
void add_route(route_config config)
Add a routing rule.
Definition log_router.h:58
std::vector< std::string > writer_names
Definition log_router.h:33

References kcenon::logger::routing::log_router::add_route(), config_, router_, kcenon::logger::routing::route_config::stop_propagation, and kcenon::logger::routing::route_config::writer_names.

Here is the call graph for this function:

◆ route_to() [2/2]

router_builder & kcenon::logger::routing::router_builder::route_to ( const std::vector< std::string > & writer_names,
bool stop_propagation = false )
inline

Definition at line 133 of file log_router.h.

133 {
134 config_.writer_names = writer_names;
135 config_.stop_propagation = stop_propagation;
136 router_.add_route(std::move(config_));
137 return *this;
138 }

References kcenon::logger::routing::log_router::add_route(), config_, router_, kcenon::logger::routing::route_config::stop_propagation, and kcenon::logger::routing::route_config::writer_names.

Here is the call graph for this function:

◆ when_level()

router_builder & kcenon::logger::routing::router_builder::when_level ( log_level level)
inline

Definition at line 116 of file log_router.h.

116 {
117 config_.filter = std::make_unique<class level_condition>(level);
118 return *this;
119 }
std::unique_ptr< log_filter_interface > filter
Definition log_router.h:34

References config_, and kcenon::logger::routing::route_config::filter.

◆ when_matches()

router_builder & kcenon::logger::routing::router_builder::when_matches ( const std::string & pattern)
inline

Definition at line 121 of file log_router.h.

121 {
122 config_.filter = std::make_unique<class regex_condition>(pattern);
123 return *this;
124 }

References config_, and kcenon::logger::routing::route_config::filter.

Member Data Documentation

◆ config_

route_config kcenon::logger::routing::router_builder::config_
private

Definition at line 111 of file log_router.h.

Referenced by route_to(), route_to(), when_level(), and when_matches().

◆ router_

log_router& kcenon::logger::routing::router_builder::router_
private

Definition at line 110 of file log_router.h.

Referenced by route_to(), and route_to().


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