    

 ## On this page

  

 

 # console\_logger

 Last update: 16.07.2025 

<a id="l00001" name="l00001"></a> 1 

<a id="l00003" name="l00003"></a> 3 

<a id="l00004" name="l00004"></a> 4\#pragma once

<a id="l00005" name="l00005"></a> 5\#include "core/logging/i\_logger.h"

<a id="l00006" name="l00006"></a> 6\#include &lt;iostream&gt;

<a id="l00007" name="l00007"></a> 7 

<a id="l00012" name="l00012"></a> 12namespace [simulation\_framework](namespacesimulation__framework.xhtml)

<a id="l00013" name="l00013"></a> 13{

<a id="l00014" name="l00014"></a> 14namespace [core](namespacecore.xhtml)

<a id="l00015" name="l00015"></a> 15{

<a id="l00016" name="l00016"></a> 16namespace logging

<a id="l00017" name="l00017"></a> 17{

<a id="l00018" name="l00018"></a> 18 

<a id="l00021" name="l00021"></a>[ 21](classsimulation__framework_1_1core_1_1logging_1_1ConsoleLogger.xhtml)class [ConsoleLogger](classsimulation__framework_1_1core_1_1logging_1_1ConsoleLogger.xhtml) : public [ILogger](classsimulation__framework_1_1core_1_1logging_1_1ILogger.xhtml)

<a id="l00022" name="l00022"></a> 22{

<a id="l00023" name="l00023"></a> 23 public:

<a id="l00024" name="l00024"></a> 24 virtual [~ConsoleLogger](classsimulation__framework_1_1core_1_1logging_1_1ConsoleLogger.xhtml)() = default;

<a id="l00025" name="l00025"></a> 25 

<a id="l00026" name="l00026"></a>[ 26](classsimulation__framework_1_1core_1_1logging_1_1ConsoleLogger.xhtml#aaf1a52b229da07a50705df5bf08307a3) void [SetCurrentLogLevel](classsimulation__framework_1_1core_1_1logging_1_1ConsoleLogger.xhtml#aaf1a52b229da07a50705df5bf08307a3)(LogLevel log_level) final { log_level_ = log_level; }

<a id="l00027" name="l00027"></a> 27 

<a id="l00028" name="l00028"></a>[ 28](classsimulation__framework_1_1core_1_1logging_1_1ConsoleLogger.xhtml#a5fa0554c57b1663845e43bd72bd7f483) [[[nodiscard](classsimulation__framework_1_1core_1_1Topic.xhtml)]] LogLevel [GetCurrentLogLevel](classsimulation__framework_1_1core_1_1logging_1_1ConsoleLogger.xhtml#a5fa0554c57b1663845e43bd72bd7f483)() [const](classsimulation__framework_1_1core_1_1Topic.xhtml) [final](classsimulation__framework_1_1core_1_1Topic.xhtml) { return log_level_; }

<a id="l00029" name="l00029"></a> 29 

<a id="l00030" name="l00030"></a>[ 30](classsimulation__framework_1_1core_1_1logging_1_1ConsoleLogger.xhtml#a9d2ff51ab9e4e3b050fc243b55f03fb7) void [Log](classsimulation__framework_1_1core_1_1logging_1_1ConsoleLogger.xhtml#a9d2ff51ab9e4e3b050fc243b55f03fb7)(LogLevel [level](classsimulation__framework_1_1core_1_1Topic.xhtml), std::string_view [log\_message](classsimulation__framework_1_1core_1_1Topic.xhtml)) final

<a id="l00031" name="l00031"></a> 31 {

<a id="l00032" name="l00032"></a> 32 if ([level](classsimulation__framework_1_1core_1_1Topic.xhtml) &lt; [GetCurrentLogLevel](classsimulation__framework_1_1core_1_1logging_1_1ConsoleLogger.xhtml#a5fa0554c57b1663845e43bd72bd7f483)())

<a id="l00033" name="l00033"></a> 33 {

<a id="l00034" name="l00034"></a> 34 return;

<a id="l00035" name="l00035"></a> 35 }

<a id="l00036" name="l00036"></a> 36 

<a id="l00037" name="l00037"></a> 37 switch ([level](classsimulation__framework_1_1core_1_1Topic.xhtml))

<a id="l00038" name="l00038"></a> 38 {

<a id="l00039" name="l00039"></a> 39 case LogLevel::kDebug:

<a id="l00040" name="l00040"></a> 40 {

<a id="l00041" name="l00041"></a> 41 std::cout &lt;&lt; "\\033\[34m"

<a id="l00042" name="l00042"></a> 42 &lt;&lt; "\[LogDebug\]" &lt;&lt; [log\_message](classsimulation__framework_1_1core_1_1Topic.xhtml) &lt;&lt; "\\033\[0m" &lt;&lt; std::endl;

<a id="l00043" name="l00043"></a> 43 break;

<a id="l00044" name="l00044"></a> 44 }

<a id="l00045" name="l00045"></a> 45 case LogLevel::kInfo:

<a id="l00046" name="l00046"></a> 46 {

<a id="l00047" name="l00047"></a> 47 std::cout &lt;&lt; "\[LogInfo\]" &lt;&lt; [log\_message](classsimulation__framework_1_1core_1_1Topic.xhtml) &lt;&lt; std::endl;

<a id="l00048" name="l00048"></a> 48 break;

<a id="l00049" name="l00049"></a> 49 }

<a id="l00050" name="l00050"></a> 50 case LogLevel::kWarning:

<a id="l00051" name="l00051"></a> 51 {

<a id="l00052" name="l00052"></a> 52 std::cout &lt;&lt; "\\033\[33m"

<a id="l00053" name="l00053"></a> 53 &lt;&lt; "\[LogWarn\]" &lt;&lt; [log\_message](classsimulation__framework_1_1core_1_1Topic.xhtml) &lt;&lt; "\\033\[0m" &lt;&lt; std::endl;

<a id="l00054" name="l00054"></a> 54 break;

<a id="l00055" name="l00055"></a> 55 }

<a id="l00056" name="l00056"></a> 56 case LogLevel::kError:

<a id="l00057" name="l00057"></a> 57 {

<a id="l00058" name="l00058"></a> 58 std::cerr &lt;&lt; "\\033\[31m"

<a id="l00059" name="l00059"></a> 59 &lt;&lt; "\[LogError\]" &lt;&lt; [log\_message](classsimulation__framework_1_1core_1_1Topic.xhtml) &lt;&lt; "\\033\[0m" &lt;&lt; std::endl;

<a id="l00060" name="l00060"></a> 60 break;

<a id="l00061" name="l00061"></a> 61 }

<a id="l00062" name="l00062"></a> 62 default:

<a id="l00063" name="l00063"></a> 63 {

<a id="l00064" name="l00064"></a> 64 break;

<a id="l00065" name="l00065"></a> 65 }

<a id="l00066" name="l00066"></a> 66 }

<a id="l00067" name="l00067"></a> 67 }



<a id="l00068" name="l00068"></a> 68 

<a id="l00069" name="l00069"></a> 69 private:

<a id="l00070" name="l00070"></a> 70 LogLevel log_level_{LogLevel::kDebug};

<a id="l00071" name="l00071"></a> 71};



<a id="l00072" name="l00072"></a> 72 

<a id="l00073" name="l00073"></a> 73} // namespace logging

<a id="l00074" name="l00074"></a> 74} // namespace core

<a id="l00075" name="l00075"></a> 75} // namespace simulation\_framework

[simulation\_framework::core::Topic](classsimulation__framework_1_1core_1_1Topic.xhtml)

This is the concrete Topic class that can be used for creation of a communication channel with given ...

**Definition** [topic.h:38](topic_8h_source.xhtml#l00037)



[simulation\_framework::core::logging::ConsoleLogger](classsimulation__framework_1_1core_1_1logging_1_1ConsoleLogger.xhtml)

A basic implementation of the logger which logs to stdout/stderr.

**Definition** [console\_logger.h:22](console__logger_8h_source.xhtml#l00021)



[simulation\_framework::core::logging::ConsoleLogger::GetCurrentLogLevel](classsimulation__framework_1_1core_1_1logging_1_1ConsoleLogger.xhtml#a5fa0554c57b1663845e43bd72bd7f483)

LogLevel GetCurrentLogLevel() const final

**Definition** [console\_logger.h:28](console__logger_8h_source.xhtml#l00028)



[simulation\_framework::core::logging::ConsoleLogger::Log](classsimulation__framework_1_1core_1_1logging_1_1ConsoleLogger.xhtml#a9d2ff51ab9e4e3b050fc243b55f03fb7)

void Log(LogLevel level, std::string_view log_message) final

**Definition** [console\_logger.h:30](console__logger_8h_source.xhtml#l00030)



[simulation\_framework::core::logging::ConsoleLogger::SetCurrentLogLevel](classsimulation__framework_1_1core_1_1logging_1_1ConsoleLogger.xhtml#aaf1a52b229da07a50705df5bf08307a3)

void SetCurrentLogLevel(LogLevel log_level) final

**Definition** [console\_logger.h:26](console__logger_8h_source.xhtml#l00026)



[simulation\_framework::core::logging::ILogger](classsimulation__framework_1_1core_1_1logging_1_1ILogger.xhtml)

An interface for implementing custom logging mechanisms.

**Definition** [i\_logger.h:31](i__logger_8h_source.xhtml#l00030)



[core](namespacecore.xhtml)

The namespace for all core functionalities under namespace simulation_framework.



[simulation\_framework](namespacesimulation__framework.xhtml)

The top namespace for simulation framework.