GCC Code Coverage Report


Directory: ./
File: src/iguana/services/Logger.cc
Date: 2025-06-06 22:09:53
Exec Total Coverage
Lines: 26 29 89.7%
Functions: 7 7 100.0%
Branches: 18 54 33.3%

Line Branch Exec Source
1 #include "Logger.h"
2
3 namespace iguana {
4
5 203 Logger::Logger(std::string_view name, Level const lev, bool const enable_style)
6
1/2
✓ Branch 0 (3→4) taken 203 times.
✗ Branch 1 (3→31) not taken.
203 : m_name(name)
7
1/2
✓ Branch 0 (3→4) taken 203 times.
✗ Branch 1 (3→31) not taken.
203 , m_enable_style(enable_style)
8 {
9 m_level_names = {
10 {trace, "trace"},
11 {debug, "debug"},
12 {info, "info"},
13 {quiet, "quiet"},
14 {warn, "warn"},
15 {error, "error"},
16
3/8
✓ Branch 0 (14→15) taken 1421 times.
✓ Branch 1 (14→21) taken 203 times.
✓ Branch 2 (15→16) taken 1421 times.
✗ Branch 3 (15→18) not taken.
✗ Branch 4 (23→24) not taken.
✗ Branch 5 (23→30) not taken.
✗ Branch 6 (24→25) not taken.
✗ Branch 7 (24→27) not taken.
1624 {silent, "silent"}};
17
1/2
✓ Branch 0 (21→22) taken 203 times.
✗ Branch 1 (21→40) not taken.
203 SetLevel(lev);
18
0/4
✗ Branch 0 (32→33) not taken.
✗ Branch 1 (32→39) not taken.
✗ Branch 2 (33→34) not taken.
✗ Branch 3 (33→36) not taken.
203 }
19
20 45 void Logger::SetLevel(std::string_view lev)
21 {
22
2/2
✓ Branch 0 (10→3) taken 246 times.
✓ Branch 1 (10→11) taken 1 times.
247 for(auto& [lev_i, lev_n] : m_level_names) {
23 202 if(lev == lev_n) {
24 44 m_level = lev_i;
25 44 Debug("log level set to '{}'", lev);
26 return;
27 }
28 }
29
2/6
✓ Branch 0 (15→16) taken 1 times.
✗ Branch 1 (15→23) not taken.
✓ Branch 2 (16→17) taken 1 times.
✗ Branch 3 (16→19) not taken.
✗ Branch 4 (23→24) not taken.
✗ Branch 5 (23→26) not taken.
3 Error("Log level '{}' is not a known log level; the log level will remain at '{}'", lev, m_level_names.at(m_level));
30 }
31
32
1/2
✓ Branch 0 (2→3) taken 248 times.
✗ Branch 1 (2→36) not taken.
248 void Logger::SetLevel(Level const lev)
33 {
34 try {
35 auto level_name = m_level_names.at(lev);
36
1/2
✗ Branch 0 (7→8) not taken.
✓ Branch 1 (7→9) taken 248 times.
248 m_level = lev;
37
3/10
✓ Branch 0 (11→12) taken 248 times.
✗ Branch 1 (11→24) not taken.
✓ Branch 2 (12→13) taken 248 times.
✗ Branch 3 (12→15) not taken.
✓ Branch 4 (17→18) taken 248 times.
✗ Branch 5 (17→20) not taken.
✗ Branch 6 (24→25) not taken.
✗ Branch 7 (24→27) not taken.
✗ Branch 8 (30→31) not taken.
✗ Branch 9 (30→33) not taken.
496 Debug("log level set to '{}'", level_name);
38 }
39 catch(std::out_of_range const& ex) {
40 Error("Log level '{}' is not a known log level; the log level will remain at '{}'", static_cast<int>(lev), m_level_names.at(m_level));
41 }
42 248 }
43
44 59357 Logger::Level Logger::GetLevel()
45 {
46 59357 return m_level;
47 }
48
49 1 void Logger::EnableStyle()
50 {
51 1 m_enable_style = true;
52 1 }
53
54 1 void Logger::DisableStyle()
55 {
56 1 m_enable_style = false;
57 1 }
58
59 59038 std::string Logger::Header(std::string_view message, int const width)
60 {
61
3/4
✗ Branch 0 (3→4) not taken.
✓ Branch 1 (3→5) taken 59038 times.
✓ Branch 2 (6→7) taken 7696 times.
✓ Branch 3 (6→9) taken 51342 times.
177114 return fmt::format("{:=^{}}", fmt::format(" {} ", message), width);
62 }
63
64 }
65