UCILoader 1.1.2
Small C++ library that allows user to connect to a chess engines via UCI protocol.
Loading...
Searching...
No Matches
UCILoader::Loggers Namespace Reference

Factory functions for creating preconfigured loggers. More...

Functions

LoggerBuilder toNoting ()
 Create a logger that discards all messages.
 
LoggerBuilder toStd ()
 Create a logger that outputs to standard output.
 
LoggerBuilder toStderr ()
 Create a logger that outputs to standard error.
 
LoggerBuilder toFile (const std::string &filename)
 Create a logger that outputs to a file.
 
LoggerBuilder toFile (const char *filename)
 Create a logger that outputs to a file.
 
LoggerBuilder toBuffer (LogBuffer &buffer)
 Create a logger that stores messages in abuffer.
 
LoggerBuilder toCallback (std::function< void(Logger::MessageDirection, const std::string &msg)> callback)
 Create a logger that forwards all messages to a callback function.
 
LoggerBuilder toOstream (std::ostream &os)
 Create a logger that outputs to an arbitrary output stream.
 
template<class CustomLogger , typename ... args>
LoggerBuilder from (args... params)
 Create a custom logger of the specified type.
 

Detailed Description

Factory functions for creating preconfigured loggers.

The Loggers namespace provides factory methods for creating loggers with various output destinations. Each factory returns a LoggerBuilder that can be customized with LoggerTraits before calling build().

Factory Methods:

See also
LoggerBuilder for composing multiple loggers with traits
LoggerTraits namespace for customization options

Usage Examples (from Examples/demo/main.cpp):

// Create a file logger with Pretty formatting
auto logger = Loggers::toFile("Logs.txt") | LoggerTraits::Pretty;
// Create a callback logger for custom handling
auto logger = Loggers::toCallback([](Logger::MessageDirection dir, const std::string& msg) {
std::cout << "Got message: " << msg << std::endl;
});
// Create a custom logger
auto logger = Loggers::from<MyCustomLogger>(arg1, arg2);
MessageDirection
Enumeration of message directions for logging purposes.
Definition: Logger.h:37
const LoggerTrait & Pretty
Trait that formats log messages for human readability.
Definition: Logger.cpp:165
LoggerBuilder toFile(const std::string &filename)
Create a logger that outputs to a file.
Definition: Logger.cpp:185
LoggerBuilder toCallback(std::function< void(Logger::MessageDirection, const std::string &msg)> callback)
Create a logger that forwards all messages to a callback function.
Definition: Logger.cpp:200

Function Documentation

◆ from()

template<class CustomLogger , typename ... args>
LoggerBuilder UCILoader::Loggers::from ( args...  params)

Create a custom logger of the specified type.

Template Parameters
CustomLoggerThe custom logger class (must derive from Logger)
argsTypes of constructor arguments
Parameters
paramsConstructor arguments for the custom logger
Returns
A LoggerBuilder for the custom logger

Example:

class MyLogger : public Logger {
// ... implementation
};
auto logger = Loggers::from<MyLogger>(arg1, arg2).build();
Base interface for logging UCI protocol messages.
Definition: Logger.h:32

◆ toBuffer()

LoggerBuilder UCILoader::Loggers::toBuffer ( LogBuffer buffer)

Create a logger that stores messages in abuffer.

This is useful for capturing a snapshot of recent messages for debugging.

Parameters
bufferReference to the LogBuffer to store messages in
Returns
A LoggerBuilder for a buffer logger

◆ toCallback()

LoggerBuilder UCILoader::Loggers::toCallback ( std::function< void(Logger::MessageDirection, const std::string &msg)>  callback)

Create a logger that forwards all messages to a callback function.

This allows custom handling of log messages in your application.

Parameters
callbackFunction to call for each logged message
Returns
A LoggerBuilder for a callback logger

◆ toFile() [1/2]

LoggerBuilder UCILoader::Loggers::toFile ( const char *  filename)

Create a logger that outputs to a file.

Parameters
filenameC-string path to the log file
Returns
A LoggerBuilder for a file logger

◆ toFile() [2/2]

LoggerBuilder UCILoader::Loggers::toFile ( const std::string &  filename)

Create a logger that outputs to a file.

Parameters
filenamePath to the log file
Returns
A LoggerBuilder for a file logger

◆ toNoting()

LoggerBuilder UCILoader::Loggers::toNoting ( )

Create a logger that discards all messages.

Returns
A LoggerBuilder for a no-operation logger

◆ toOstream()

LoggerBuilder UCILoader::Loggers::toOstream ( std::ostream &  os)

Create a logger that outputs to an arbitrary output stream.

Parameters
osReference to the output stream (e.g., std::cout, std::cerr, std::ofstream)
Returns
A LoggerBuilder for a stream logger

◆ toStd()

LoggerBuilder UCILoader::Loggers::toStd ( )

Create a logger that outputs to standard output.

Returns
A LoggerBuilder for a stdout logger

◆ toStderr()

LoggerBuilder UCILoader::Loggers::toStderr ( )

Create a logger that outputs to standard error.

Returns
A LoggerBuilder for a stderr logger