Monitoring System 0.1.0
System resource monitoring with pluggable collectors and alerting
Loading...
Searching...
No Matches
simple_console_logger Class Reference

Simple logger implementation for demonstration. More...

Inheritance diagram for simple_console_logger:
Inheritance graph
Collaboration diagram for simple_console_logger:
Collaboration graph

Public Member Functions

 simple_console_logger (log_level min=log_level::debug)
 
kcenon::common::VoidResult log (log_level level, const std::string &message) override
 
kcenon::common::VoidResult log (const log_entry &entry) override
 
bool is_enabled (log_level level) const override
 
kcenon::common::VoidResult set_level (log_level level) override
 
log_level get_level () const override
 
kcenon::common::VoidResult flush () override
 
size_t get_log_count () const
 

Private Attributes

log_level min_level_ = log_level::debug
 
std::atomic< size_t > log_count_ {0}
 

Detailed Description

Simple logger implementation for demonstration.

Examples
logger_di_integration_example.cpp.

Definition at line 30 of file logger_di_integration_example.cpp.

Constructor & Destructor Documentation

◆ simple_console_logger()

simple_console_logger::simple_console_logger ( log_level min = log_level::debug)
inlineexplicit

Member Function Documentation

◆ flush()

kcenon::common::VoidResult simple_console_logger::flush ( )
inlineoverride
Examples
logger_di_integration_example.cpp.

Definition at line 84 of file logger_di_integration_example.cpp.

84 {
85 std::cout << std::flush;
86 return kcenon::common::ok();
87 }

◆ get_level()

log_level simple_console_logger::get_level ( ) const
inlineoverride
Examples
logger_di_integration_example.cpp.

Definition at line 80 of file logger_di_integration_example.cpp.

80 {
81 return min_level_;
82 }

References min_level_.

◆ get_log_count()

size_t simple_console_logger::get_log_count ( ) const
inline
Examples
logger_di_integration_example.cpp.

Definition at line 89 of file logger_di_integration_example.cpp.

89{ return log_count_.load(); }

References log_count_.

◆ is_enabled()

bool simple_console_logger::is_enabled ( log_level level) const
inlineoverride
Examples
logger_di_integration_example.cpp.

Definition at line 71 of file logger_di_integration_example.cpp.

71 {
72 return static_cast<int>(level) >= static_cast<int>(min_level_);
73 }

References min_level_.

Referenced by log().

Here is the caller graph for this function:

◆ log() [1/2]

kcenon::common::VoidResult simple_console_logger::log ( const log_entry & entry)
inlineoverride

Definition at line 63 of file logger_di_integration_example.cpp.

63 {
64 std::string msg = entry.message;
65 if (!entry.file.empty()) {
66 msg += " [" + entry.file + ":" + std::to_string(entry.line) + " " + entry.function + "]";
67 }
68 return log(entry.level, msg);
69 }
kcenon::common::VoidResult log(log_level level, const std::string &message) override

References log().

Here is the call graph for this function:

◆ log() [2/2]

kcenon::common::VoidResult simple_console_logger::log ( log_level level,
const std::string & message )
inlineoverride
Examples
logger_di_integration_example.cpp.

Definition at line 39 of file logger_di_integration_example.cpp.

39 {
40 if (!is_enabled(level)) {
41 return kcenon::common::ok();
42 }
43
44 auto now = std::chrono::system_clock::now();
45 auto time = std::chrono::system_clock::to_time_t(now);
46
47 // Thread-safe time conversion
48 std::tm tm_buf;
49#ifdef _WIN32
50 localtime_s(&tm_buf, &time);
51#else
52 localtime_r(&time, &tm_buf);
53#endif
54
55 std::cout << "[" << std::put_time(&tm_buf, "%H:%M:%S")
56 << "] [" << to_string(level) << "] "
57 << message << std::endl;
58
59 log_count_++;
60 return kcenon::common::ok();
61 }
bool is_enabled(log_level level) const override
auto to_string(plugin_load_error error) -> std::string
Convert plugin_load_error to string.

References is_enabled(), log_count_, and kcenon::monitoring::to_string().

Referenced by log().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ set_level()

kcenon::common::VoidResult simple_console_logger::set_level ( log_level level)
inlineoverride
Examples
logger_di_integration_example.cpp.

Definition at line 75 of file logger_di_integration_example.cpp.

75 {
76 min_level_ = level;
77 return kcenon::common::ok();
78 }

References min_level_.

Member Data Documentation

◆ log_count_

std::atomic<size_t> simple_console_logger::log_count_ {0}
private
Examples
logger_di_integration_example.cpp.

Definition at line 33 of file logger_di_integration_example.cpp.

33{0};

Referenced by get_log_count(), and log().

◆ min_level_

log_level simple_console_logger::min_level_ = log_level::debug
private

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