DotNameLib
Loading...
Searching...
No Matches
LoggerFactory.hpp
Go to the documentation of this file.
1#pragma once
3#include <memory>
4#include <string>
5
6namespace dotnamecpp::logging {
7
8 enum class LoggerType : uint8_t { Console, File, Null };
9
13 struct LoggerConfig {
15 bool enableFileLogging = false;
16 std::string logFilePath;
17 bool colorOutput = true;
18 std::string appPrefix;
19 };
20
22 public:
30 static std::shared_ptr<ILogger> create(LoggerType type = LoggerType::Console,
31 const LoggerConfig &config = LoggerConfig{});
32
39 static std::shared_ptr<ILogger> createConsole(const LoggerConfig &config = LoggerConfig{});
40
47 static std::shared_ptr<ILogger> createFile(const LoggerConfig &config = LoggerConfig{});
48
54 static std::shared_ptr<ILogger> createNull();
55 };
56
57} // namespace dotnamecpp::logging
Definition LoggerFactory.hpp:21
static std::shared_ptr< ILogger > createNull()
Create a Null object logger.
Definition LoggerFactory.cpp:31
static std::shared_ptr< ILogger > create(LoggerType type=LoggerType::Console, const LoggerConfig &config=LoggerConfig{})
Create a logger instance based on the specified type and configuration.
Definition LoggerFactory.cpp:7
static std::shared_ptr< ILogger > createFile(const LoggerConfig &config=LoggerConfig{})
Create a File object logger.
static std::shared_ptr< ILogger > createConsole(const LoggerConfig &config=LoggerConfig{})
Create a Console object logger.
Definition LoggerFactory.cpp:16
Definition ILogger.hpp:15
LoggerType
Definition LoggerFactory.hpp:8
@ File
Definition LoggerFactory.hpp:8
@ Null
Definition LoggerFactory.hpp:8
@ Console
Definition LoggerFactory.hpp:8
Level
Logging levels.
Definition ILogger.hpp:21
@ LOG_INFO
Definition ILogger.hpp:21
Configuration options for creating a logger.
Definition LoggerFactory.hpp:13
bool enableFileLogging
Definition LoggerFactory.hpp:15
Level level
Definition LoggerFactory.hpp:14
bool colorOutput
Definition LoggerFactory.hpp:17
std::string logFilePath
Definition LoggerFactory.hpp:16
std::string appPrefix
Definition LoggerFactory.hpp:18