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>;
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 std::string
const &getLogFileBaseName()
const {
119 return logFileBaseName_;
122 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();
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 Definition: RunLoopManager.h:42
The main namespace for all C++ elements of the framework, internal and external.
Definition: namespace_osvr.dox:3
OSVR_UTIL_EXPORT void dropAll()
Removes all the registered loggers from the registry.
Definition: Log.cpp:96
OSVR_UTIL_EXPORT void flush()
For implementations with a centralized logger registry, flush all logger sinks.
Definition: Log.cpp:100
Header for basic internal log reference.
LogLevel
Log message severity levels.
Definition: LogLevel.h:45
Definition: LogRegistry.h:59
An object allowing you to log messages with a given log source name.
Definition: Logger.h:67
OSVR_UTIL_EXPORT void drop(const std::string &logger_name)
Drops a logger from the registry.
Definition: Log.cpp:92