Mila 0.13.48
Deep Neural Network Library
Loading...
Searching...
No Matches
Mila::Logging::ConsoleSink Class Referenceexport

Thread-safe logging sink that writes formatted records to the console. More...

Inheritance diagram for Mila::Logging::ConsoleSink:
Collaboration diagram for Mila::Logging::ConsoleSink:

Public Member Functions

 ConsoleSink (LogLevel initialLevel=LogLevel::Info)
 Constructs a ConsoleSink with the specified minimum log level.
LogLevel getLevel () const override
 Returns the current minimum log level.
bool isEnabled (LogLevel level) const override
 Returns true if records at level would be emitted.
void log (std::string_view message, LogLevel level, const std::source_location &location=std::source_location::current()) override
 Emits a record at an explicitly specified level.
void log_critical (std::string_view message, const std::source_location &location=std::source_location::current()) override
 Emits a record at Critical level. Output goes to std::cerr.
void log_debug (std::string_view message, const std::source_location &location=std::source_location::current()) override
 Emits a record at Debug level.
void log_error (std::string_view message, const std::source_location &location=std::source_location::current()) override
 Emits a record at Error level. Output goes to std::cerr.
void log_info (std::string_view message, const std::source_location &location=std::source_location::current()) override
 Emits a record at Info level.
void log_trace (std::string_view message, const std::source_location &location=std::source_location::current()) override
 Emits a record at Trace level.
void log_warning (std::string_view message, const std::source_location &location=std::source_location::current()) override
 Emits a record at Warning level.
void setIncludeSourceLocation (bool include)
 Controls whether source location (file, line, function) is prepended to each record.
void setIncludeTimestamp (bool include)
 Controls whether a timestamp prefix is prepended to each record.
void setLevel (LogLevel level) override
 Sets the minimum level at which records are emitted.
Public Member Functions inherited from Mila::Logging::Logger
 Logger (const Logger &)=delete
 Logger (Logger &&)=delete
virtual ~Logger ()=default
Loggeroperator= (const Logger &)=delete
Loggeroperator= (Logger &&)=delete

Private Member Functions

std::string getCurrentTimestamp () const
 Builds a timestamp string in HH:MM:SS.mmm format.
std::string getLocationInfo (const std::source_location &location) const
 Builds a source location string in filename:line:function format.
void logImpl (std::string_view message, LogLevel level, const std::source_location &location)
 Core emit implementation called by all public log methods.

Static Private Member Functions

static constexpr const char * logLevelToString (LogLevel level)
 Maps a LogLevel enumerator to its fixed-width string label.

Private Attributes

LogLevel currentLevel_ = LogLevel::Info
bool includeSourceLocation_ = true
bool includeTimestamp_ = true
std::mutex logMutex_

Additional Inherited Members

Static Public Member Functions inherited from Mila::Logging::Logger
static void critical (std::string_view message, const std::source_location &location=std::source_location::current())
 Emits a record at Critical level via the default logger.
static void debug (std::string_view message, const std::source_location &location=std::source_location::current())
 Emits a record at Debug level via the default logger.
static LoggerdefaultLogger ()
 Returns a reference to the registered default logger.
static void error (std::string_view message, const std::source_location &location=std::source_location::current())
 Emits a record at Error level via the default logger.
static void info (std::string_view message, const std::source_location &location=std::source_location::current())
 Emits a record at Info level via the default logger.
static void setDefaultLogger (Logger *logger)
 Registers a sink as the process-wide default logger.
static void trace (std::string_view message, const std::source_location &location=std::source_location::current())
 Emits a record at Trace level via the default logger.
static void warning (std::string_view message, const std::source_location &location=std::source_location::current())
 Emits a record at Warning level via the default logger.
Protected Member Functions inherited from Mila::Logging::Logger
 Logger ()=default

Detailed Description

Thread-safe logging sink that writes formatted records to the console.

Implements the Logger interface, routing records at Error level and above to std::cerr and all others to std::cout. Each record is prefixed with an optional timestamp and source location to aid diagnostics.

Sink selection is an application-level concern. Wire this sink via Mila::initializeLogger() for CLI or development scenarios.

// Typical wiring in main or Mila::initialize():
auto sink = std::make_shared<Mila::Logging::ConsoleSink>( Mila::Logging::LogLevel::Info );
static void setDefaultLogger(Logger *logger)
Registers a sink as the process-wide default logger.
Definition Logger.ixx:87
@ Info
Normal operational milestones (model loaded, server ready).
Definition Logger.ixx:44

Constructor & Destructor Documentation

◆ ConsoleSink()

Mila::Logging::ConsoleSink::ConsoleSink ( LogLevel initialLevel = LogLevel::Info)
inlineexplicit

Constructs a ConsoleSink with the specified minimum log level.

Parameters
initialLevelRecords below this level are silently discarded.

Member Function Documentation

◆ getCurrentTimestamp()

std::string Mila::Logging::ConsoleSink::getCurrentTimestamp ( ) const
inlineprivate

Builds a timestamp string in HH:MM:SS.mmm format.

Returns
The formatted timestamp followed by a space, or an empty string if timestamps are disabled.
Here is the caller graph for this function:

◆ getLevel()

LogLevel Mila::Logging::ConsoleSink::getLevel ( ) const
inlineoverridevirtual

Returns the current minimum log level.

Implements Mila::Logging::Logger.

◆ getLocationInfo()

std::string Mila::Logging::ConsoleSink::getLocationInfo ( const std::source_location & location) const
inlineprivate

Builds a source location string in filename:line:function format.

The file path is reduced to the filename component only. The function name is trimmed to the bare name without namespace qualifiers or parameter list, keeping the output concise even for templated functions.

Parameters
locationThe source location to format.
Returns
The formatted location string followed by ": ", or an empty string if source location is disabled.
Here is the caller graph for this function:

◆ isEnabled()

bool Mila::Logging::ConsoleSink::isEnabled ( LogLevel level) const
inlineoverridevirtual

Returns true if records at level would be emitted.

Parameters
levelThe level to test.

Implements Mila::Logging::Logger.

Here is the caller graph for this function:

◆ log()

void Mila::Logging::ConsoleSink::log ( std::string_view message,
LogLevel level,
const std::source_location & location = std::source_location::current() )
inlineoverridevirtual

Emits a record at an explicitly specified level.

Parameters
messageThe log message.
levelThe severity level for this record.
locationAutomatically captured call-site location.

Implements Mila::Logging::Logger.

Here is the call graph for this function:

◆ log_critical()

void Mila::Logging::ConsoleSink::log_critical ( std::string_view message,
const std::source_location & location = std::source_location::current() )
inlineoverridevirtual

Emits a record at Critical level. Output goes to std::cerr.

Implements Mila::Logging::Logger.

Here is the call graph for this function:

◆ log_debug()

void Mila::Logging::ConsoleSink::log_debug ( std::string_view message,
const std::source_location & location = std::source_location::current() )
inlineoverridevirtual

Emits a record at Debug level.

Implements Mila::Logging::Logger.

Here is the call graph for this function:

◆ log_error()

void Mila::Logging::ConsoleSink::log_error ( std::string_view message,
const std::source_location & location = std::source_location::current() )
inlineoverridevirtual

Emits a record at Error level. Output goes to std::cerr.

Implements Mila::Logging::Logger.

Here is the call graph for this function:

◆ log_info()

void Mila::Logging::ConsoleSink::log_info ( std::string_view message,
const std::source_location & location = std::source_location::current() )
inlineoverridevirtual

Emits a record at Info level.

Implements Mila::Logging::Logger.

Here is the call graph for this function:

◆ log_trace()

void Mila::Logging::ConsoleSink::log_trace ( std::string_view message,
const std::source_location & location = std::source_location::current() )
inlineoverridevirtual

Emits a record at Trace level.

Implements Mila::Logging::Logger.

Here is the call graph for this function:

◆ log_warning()

void Mila::Logging::ConsoleSink::log_warning ( std::string_view message,
const std::source_location & location = std::source_location::current() )
inlineoverridevirtual

Emits a record at Warning level.

Implements Mila::Logging::Logger.

Here is the call graph for this function:

◆ logImpl()

void Mila::Logging::ConsoleSink::logImpl ( std::string_view message,
LogLevel level,
const std::source_location & location )
inlineprivate

Core emit implementation called by all public log methods.

Checks the level filter, formats the record, acquires the mutex, then writes to the appropriate stream. Uses '\n' rather than std::endl to avoid a flush on every record; Critical records are explicitly flushed to ensure visibility before a potential process termination.

Parameters
messageThe log message.
levelThe severity level of this record.
locationThe call-site source location.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ logLevelToString()

constexpr const char * Mila::Logging::ConsoleSink::logLevelToString ( LogLevel level)
inlinestaticconstexprprivate

Maps a LogLevel enumerator to its fixed-width string label.

Parameters
levelThe level to convert.
Returns
A null-terminated string of consistent width for aligned output.
Here is the caller graph for this function:

◆ setIncludeSourceLocation()

void Mila::Logging::ConsoleSink::setIncludeSourceLocation ( bool include)
inline

Controls whether source location (file, line, function) is prepended to each record.

Parameters
includePass false to suppress location info.

◆ setIncludeTimestamp()

void Mila::Logging::ConsoleSink::setIncludeTimestamp ( bool include)
inline

Controls whether a timestamp prefix is prepended to each record.

Parameters
includePass false to suppress timestamps (e.g. in unit tests).

◆ setLevel()

void Mila::Logging::ConsoleSink::setLevel ( LogLevel level)
inlineoverridevirtual

Sets the minimum level at which records are emitted.

Implements Mila::Logging::Logger.

Member Data Documentation

◆ currentLevel_

LogLevel Mila::Logging::ConsoleSink::currentLevel_ = LogLevel::Info
private

◆ includeSourceLocation_

bool Mila::Logging::ConsoleSink::includeSourceLocation_ = true
private

◆ includeTimestamp_

bool Mila::Logging::ConsoleSink::includeTimestamp_ = true
private

◆ logMutex_

std::mutex Mila::Logging::ConsoleSink::logMutex_
mutableprivate

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