Chrysalis - Logging
Loading...
Searching...
No Matches
LoggerRegistry.h
Go to the documentation of this file.
1#ifndef CHRYSALIS_LOGGERREGISTRY_H
2#define CHRYSALIS_LOGGERREGISTRY_H
3
4#include <map>
5#include <cstddef>
6#include <forward_list>
7
8#include "spdlog/pattern_formatter.h"
9#include "spdlog/sinks/stdout_sinks.h"
10#include "spdlog/sinks/basic_file_sink.h"
11
12#include "Logger.h"
13#include "BaseConsoleUser.h"
16
17namespace Logging {
20 public:
21 explicit LoggerRegistry(const char* loggingDirectory, const char* fileName);
23
24 [[nodiscard]] std::vector<Logger*>::const_iterator begin() const;
25 [[nodiscard]] std::vector<Logger*>::const_iterator end() const;
26
27 [[nodiscard]] size_t size() const;
28
29 [[nodiscard]] Logger* at(int i) const;
30 [[nodiscard]] Logger* get(const char* name);
31
32 void flush() const;
33
34 [[nodiscard]] const std::string& getFileName() const;
35 [[nodiscard]] const std::string& getLoggingDirectory() const;
36
37 void setFileName(const std::string& fileName);
38 void setLoggingDirectory(const std::string& loggingDirectory);
39 private:
40 void addListener(BaseLoggerRegistryListener* listener);
41
42 std::string fileName_;
43 std::string loggingDirectory_;
44
45 std::vector<Logger*> loggers_;
46 std::map<const char*, Logger*> loggersMap_;
47 std::forward_list<BaseLoggerRegistryListener*> listeners_;
48
49 std::shared_ptr<spdlog::sinks::stdout_sink_mt> consoleSink_;
50 std::shared_ptr<spdlog::sinks::basic_file_sink_mt> commonFileSink_;
51 };
52}
53
54#endif //CHRYSALIS_LOGGERREGISTRY_H
#define LOGGING
Definition LoggingLibraryExport.h:11
BaseConsoleUser()
Definition BaseConsoleUser.cpp:10
friend class BaseLoggerRegistryListener
Definition LoggerRegistry.h:19
const std::string & getLoggingDirectory() const
Definition LoggerRegistry.cpp:58
Logger * get(const char *name)
Definition LoggerRegistry.cpp:85
const std::string & getFileName() const
Definition LoggerRegistry.cpp:54
size_t size() const
Definition LoggerRegistry.cpp:42
LoggerRegistry(const char *loggingDirectory, const char *fileName)
Definition LoggerRegistry.cpp:20
void setLoggingDirectory(const std::string &loggingDirectory)
Definition LoggerRegistry.cpp:71
void flush() const
Definition LoggerRegistry.cpp:46
std::vector< Logger * >::const_iterator begin() const
Definition LoggerRegistry.cpp:34
std::vector< Logger * >::const_iterator end() const
Definition LoggerRegistry.cpp:38
Logger * at(int i) const
Definition LoggerRegistry.cpp:81
void setFileName(const std::string &fileName)
Definition LoggerRegistry.cpp:62
Definition Logger.h:13
Definition BaseConsoleUser.h:4