Helios Engine 0.1.0
A modular ECS based data-oriented C++23 game engine
 
Loading...
Searching...
No Matches
helios::LoggerConfig Struct Reference

Configuration for logger behavior and output. More...

#include <logger.hpp>

Static Public Member Functions

static LoggerConfig Default () noexcept
 Creates default configuration.
 
static LoggerConfig ConsoleOnly () noexcept
 Creates configuration for console-only output.
 
static LoggerConfig FileOnly () noexcept
 Creates configuration for file-only output.
 
static LoggerConfig Debug () noexcept
 Creates configuration optimized for debug builds.
 
static LoggerConfig Release () noexcept
 Creates configuration optimized for release builds.
 

Public Attributes

std::filesystem::path log_directory = "logs"
 Log output directory path.
 
std::string file_name_pattern
 Pattern for log file names (supports format placeholders: {name}, {timestamp}).
 
std::string console_pattern = "[%H:%M:%S.%e] [%t] [%^%l%$] %n: %v%*"
 Console log pattern.
 
std::string file_pattern = "[%Y-%m-%d %H:%M:%S.%e] [%t] [%l] %n: %v%*"
 File log pattern.
 
size_t max_file_size = 0
 Maximum size of a single log file in bytes (0 = no limit).
 
size_t max_files = 0
 Maximum number of log files to keep (0 = no limit).
 
LogLevel auto_flush_level = LogLevel::kWarn
 Minimum log level to flush automatically.
 
bool enable_console = true
 Enable console output.
 
bool enable_file = true
 Enable file output.
 
bool truncate_files = true
 Enable truncation of existing log files.
 
bool async_logging = false
 Enable async logging (better performance but may lose last logs on crash).
 
LogLevel source_location_level = LogLevel::kError
 Minimum level to include source location.
 
LogLevel stack_trace_level = LogLevel::kCritical
 Minimum level to include stack trace.
 

Detailed Description

Configuration for logger behavior and output.

Definition at line 39 of file logger.hpp.

Member Function Documentation

◆ ConsoleOnly()

static LoggerConfig helios::LoggerConfig::ConsoleOnly ( )
inlinestaticnoexcept

Creates configuration for console-only output.

Returns
LoggerConfig instance for console-only logging
Examples
/home/runner/work/HeliosEngine/HeliosEngine/src/core/include/helios/core/logger.hpp.

Definition at line 73 of file logger.hpp.

73 {
74 return LoggerConfig{.enable_console = true, .enable_file = false};
75 }

◆ Debug()

static LoggerConfig helios::LoggerConfig::Debug ( )
inlinestaticnoexcept

Creates configuration optimized for debug builds.

Returns
LoggerConfig instance for debug logging
Examples
/home/runner/work/HeliosEngine/HeliosEngine/src/core/include/helios/core/logger.hpp.

Definition at line 89 of file logger.hpp.

89 {
90 return LoggerConfig{.enable_console = true, .enable_file = true, .async_logging = false};
91 }

◆ Default()

static LoggerConfig helios::LoggerConfig::Default ( )
inlinestaticnoexcept

Creates default configuration.

Returns
Default LoggerConfig instance
Examples
/home/runner/work/HeliosEngine/HeliosEngine/src/core/include/helios/core/logger.hpp.

Definition at line 67 of file logger.hpp.

67{ return {}; }

◆ FileOnly()

static LoggerConfig helios::LoggerConfig::FileOnly ( )
inlinestaticnoexcept

Creates configuration for file-only output.

Returns
LoggerConfig instance for file-only logging
Examples
/home/runner/work/HeliosEngine/HeliosEngine/src/core/include/helios/core/logger.hpp.

Definition at line 81 of file logger.hpp.

81 {
82 return LoggerConfig{.enable_console = false, .enable_file = true};
83 }

◆ Release()

static LoggerConfig helios::LoggerConfig::Release ( )
inlinestaticnoexcept

Creates configuration optimized for release builds.

Returns
LoggerConfig instance for release logging
Examples
/home/runner/work/HeliosEngine/HeliosEngine/src/core/include/helios/core/logger.hpp.

Definition at line 97 of file logger.hpp.

97 {
98 return LoggerConfig{.enable_console = false, .enable_file = true, .async_logging = true};
99 }

Member Data Documentation

◆ async_logging

bool helios::LoggerConfig::async_logging = false

Enable async logging (better performance but may lose last logs on crash).

Examples
/home/runner/work/HeliosEngine/HeliosEngine/src/core/include/helios/core/logger.hpp.

Definition at line 58 of file logger.hpp.

◆ auto_flush_level

LogLevel helios::LoggerConfig::auto_flush_level = LogLevel::kWarn

Minimum log level to flush automatically.

Examples
/home/runner/work/HeliosEngine/HeliosEngine/src/core/include/helios/core/logger.hpp.

Definition at line 53 of file logger.hpp.

◆ console_pattern

std::string helios::LoggerConfig::console_pattern = "[%H:%M:%S.%e] [%t] [%^%l%$] %n: %v%*"

◆ enable_console

bool helios::LoggerConfig::enable_console = true

Enable console output.

Examples
/home/runner/work/HeliosEngine/HeliosEngine/src/core/include/helios/core/logger.hpp.

Definition at line 55 of file logger.hpp.

◆ enable_file

bool helios::LoggerConfig::enable_file = true

◆ file_name_pattern

std::string helios::LoggerConfig::file_name_pattern
Initial value:
=
"{name}_{timestamp}.log"

Pattern for log file names (supports format placeholders: {name}, {timestamp}).

Examples
/home/runner/work/HeliosEngine/HeliosEngine/src/core/include/helios/core/logger.hpp.

Definition at line 41 of file logger.hpp.

◆ file_pattern

std::string helios::LoggerConfig::file_pattern = "[%Y-%m-%d %H:%M:%S.%e] [%t] [%l] %n: %v%*"

◆ log_directory

std::filesystem::path helios::LoggerConfig::log_directory = "logs"

Log output directory path.

Examples
/home/runner/work/HeliosEngine/HeliosEngine/src/core/include/helios/core/logger.hpp.

Definition at line 40 of file logger.hpp.

◆ max_file_size

size_t helios::LoggerConfig::max_file_size = 0

Maximum size of a single log file in bytes (0 = no limit).

Examples
/home/runner/work/HeliosEngine/HeliosEngine/src/core/include/helios/core/logger.hpp.

Definition at line 51 of file logger.hpp.

◆ max_files

size_t helios::LoggerConfig::max_files = 0

Maximum number of log files to keep (0 = no limit).

Examples
/home/runner/work/HeliosEngine/HeliosEngine/src/core/include/helios/core/logger.hpp.

Definition at line 52 of file logger.hpp.

◆ source_location_level

LogLevel helios::LoggerConfig::source_location_level = LogLevel::kError

Minimum level to include source location.

Examples
/home/runner/work/HeliosEngine/HeliosEngine/src/core/include/helios/core/logger.hpp.

Definition at line 60 of file logger.hpp.

◆ stack_trace_level

LogLevel helios::LoggerConfig::stack_trace_level = LogLevel::kCritical

Minimum level to include stack trace.

Examples
/home/runner/work/HeliosEngine/HeliosEngine/src/core/include/helios/core/logger.hpp.

Definition at line 61 of file logger.hpp.

◆ truncate_files

bool helios::LoggerConfig::truncate_files = true

Enable truncation of existing log files.

Examples
/home/runner/work/HeliosEngine/HeliosEngine/src/core/include/helios/core/logger.hpp.

Definition at line 57 of file logger.hpp.