37 int cappedLevel = std::min(
static_cast<int>(entry.
fLevel), numLevels - 1);
38 constexpr static std::array<const char *, numLevels> sTag{
39 {
"{unset-error-level please report}",
"FATAL",
"Error",
"Warning",
"Info",
"Debug"}};
41 std::stringstream strm;
43 if (channel && !channel->GetName().empty())
44 strm <<
'[' << channel->GetName() <<
"] ";
45 strm << sTag[cappedLevel];
67 auto iter = std::find_if(
fHandlers.begin(),
fHandlers.end(), [&](
const std::unique_ptr<RLogHandler> &handlerPtr) {
68 return handlerPtr.get() == handler;
71 std::unique_ptr<RLogHandler>
ret;
85 channel->Increment(entry.
fLevel);
89 if (channel->GetEffectiveVerbosity(*
this) < entry.
fLevel)
94 std::vector<RLogHandler *> handlers;
97 std::lock_guard<std::mutex> lock(
fMutex);
101 [](
const std::unique_ptr<RLogHandler> &handlerUPtr) { return handlerUPtr.get(); });
104 for (
auto &&handler : handlers)
105 if (!handler->Emit(entry))
static Roo_reg_AGKInteg1D instance
ErrorHandlerFunc_t GetErrorHandler()
Returns the current error handler function.
void Increment(ELogLevel severity)
Increase warning or error count.
A diagnostic that can be emitted by the RLogManager.
Abstract RLogHandler base class.
A RLogHandler that multiplexes diagnostics to different client RLogHandlers and keeps track of the su...
std::list< std::unique_ptr< RLogHandler > > fHandlers
RLogManager(std::unique_ptr< RLogHandler > lh)
Initialize taking a RLogHandler.
std::unique_ptr< RLogHandler > Remove(RLogHandler *handler)
Remove and return the given log handler. Returns nullptr if not found.
bool Emit(const RLogEntry &entry) override
Emit a log entry.
static RLogManager & Get()
@ kInfo
Informational messages; used for instance for tracing.
@ kDebug
Debug information; only useful for developers; can have added verbosity up to 255-kDebug.
@ kFatal
An error which causes further processing to be unreliable.
@ kWarning
Warnings about likely unexpected behavior.