GCC Code Coverage Report


Directory: ./
File: src/iguana/services/Logger.cc
Date: 2025-11-25 17:57:04
Coverage Exec Excl Total
Lines: 89.7% 26 0 29
Functions: 100.0% 7 0 7
Branches: 33.3% 18 0 54

Line Branch Exec Source
1 #include "Logger.h"
2
3 namespace iguana {
4
5 242 Logger::Logger(std::string_view name, Level const lev, bool const enable_style)
6
1/2
✓ Branch 3 → 4 taken 242 times.
✗ Branch 3 → 31 not taken.
242 : m_name(name)
7
1/2
✓ Branch 3 → 4 taken 242 times.
✗ Branch 3 → 31 not taken.
242 , 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 14 → 15 taken 1694 times.
✓ Branch 14 → 21 taken 242 times.
✓ Branch 15 → 16 taken 1694 times.
✗ Branch 15 → 18 not taken.
✗ Branch 23 → 24 not taken.
✗ Branch 23 → 30 not taken.
✗ Branch 24 → 25 not taken.
✗ Branch 24 → 27 not taken.
1936 {silent, "silent"}};
17
1/2
✓ Branch 21 → 22 taken 242 times.
✗ Branch 21 → 40 not taken.
242 SetLevel(lev);
18
0/4
✗ Branch 32 → 33 not taken.
✗ Branch 32 → 39 not taken.
✗ Branch 33 → 34 not taken.
✗ Branch 33 → 36 not taken.
242 }
19
20 55 void Logger::SetLevel(std::string_view lev)
21 {
22
2/2
✓ Branch 10 → 3 taken 292 times.
✓ Branch 10 → 11 taken 1 time.
293 for(auto& [lev_i, lev_n] : m_level_names) {
23 238 if(lev == lev_n) {
24 54 m_level = lev_i;
25 54 Debug("log level set to '{}'", lev);
26 return;
27 }
28 }
29
2/6
✓ Branch 15 → 16 taken 1 time.
✗ Branch 15 → 23 not taken.
✓ Branch 16 → 17 taken 1 time.
✗ Branch 16 → 19 not taken.
✗ Branch 23 → 24 not taken.
✗ Branch 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 2 → 3 taken 293 times.
✗ Branch 2 → 36 not taken.
293 void Logger::SetLevel(Level const lev)
33 {
34 try {
35 auto level_name = m_level_names.at(lev);
36
1/2
✗ Branch 7 → 8 not taken.
✓ Branch 7 → 9 taken 293 times.
293 m_level = lev;
37
3/10
✓ Branch 11 → 12 taken 293 times.
✗ Branch 11 → 24 not taken.
✓ Branch 12 → 13 taken 293 times.
✗ Branch 12 → 15 not taken.
✓ Branch 17 → 18 taken 293 times.
✗ Branch 17 → 20 not taken.
✗ Branch 24 → 25 not taken.
✗ Branch 24 → 27 not taken.
✗ Branch 30 → 31 not taken.
✗ Branch 30 → 33 not taken.
586 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 293 }
43
44 90005 Logger::Level Logger::GetLevel()
45 {
46 90005 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 73074 std::string Logger::Header(std::string_view message, int const width)
60 {
61
3/4
✗ Branch 3 → 4 not taken.
✓ Branch 3 → 5 taken 73074 times.
✓ Branch 6 → 7 taken 12928 times.
✓ Branch 6 → 9 taken 60146 times.
219222 return fmt::format("{:=^{}}", fmt::format(" {} ", message), width);
62 }
63
64 }
65