26 #ifndef INCLUDED_LogRegistry_h_GUID_09DDD840_389E_430C_8CBD_9AC4EE3F93FE
27 #define INCLUDED_LogRegistry_h_GUID_09DDD840_389E_430C_8CBD_9AC4EE3F93FE
32 #include <osvr/Util/Export.h>
50 using sink_ptr = std::shared_ptr<spdlog::sinks::sink>;
61 OSVR_UTIL_EXPORT LogRegistry(LogRegistry
const &) =
delete;
62 OSVR_UTIL_EXPORT LogRegistry(LogRegistry &&) =
delete;
63 OSVR_UTIL_EXPORT LogRegistry &operator=(LogRegistry
const &) =
delete;
64 OSVR_UTIL_EXPORT LogRegistry &operator=(LogRegistry &&) =
delete;
66 OSVR_UTIL_EXPORT
static LogRegistry &instance(std::string
const * =
nullptr);
77 OSVR_UTIL_EXPORT LoggerPtr getOrCreateLogger(
const std::string &logger_name);
86 OSVR_UTIL_EXPORT
void drop(
const std::string &name);
94 OSVR_UTIL_EXPORT
void dropAll();
99 OSVR_UTIL_EXPORT
void flush();
104 OSVR_UTIL_EXPORT
void setPattern(
const std::string &pattern);
110 OSVR_UTIL_EXPORT
void setLevel(LogLevel severity);
116 OSVR_UTIL_EXPORT
void setConsoleLevel(LogLevel severity);
118 OSVR_UTIL_EXPORT std::string
const &getLogFileBaseName()
const {
119 return logFileBaseName_;
122 OSVR_UTIL_EXPORT
bool couldOpenLogFile()
const {
return sinks_.size() > 1; }
125 OSVR_UTIL_EXPORT LogRegistry(std::string
const &logFileBaseName);
126 OSVR_UTIL_EXPORT ~LogRegistry();
129 void setLevelImpl(LogLevel severity);
130 void setConsoleLevelImpl(LogLevel severity);
131 void createFileSink();
133 LogLevel consoleLevel_;
135 std::vector<spdlog::sink_ptr> sinks_;
136 std::shared_ptr<filter_sink> console_filter_;
137 LoggerPtr consoleOnlyLog_;
138 LoggerPtr generalLog_;
139 Logger *generalPurposeLog_ =
nullptr;
140 std::string logFileBaseName_;
147 #endif // INCLUDED_LogRegistry_h_GUID_09DDD840_389E_430C_8CBD_9AC4EE3F93FE
The main namespace for all C++ elements of the framework, internal and external.
Header for basic internal log reference. To actually log to the produced loggers, include