23 ROOT::Experimental::RLogHandler::~RLogHandler() {}
26 class RLogHandlerDefault:
public ROOT::Experimental::RLogHandler {
29 bool Emit(
const ROOT::Experimental::RLogEntry &entry)
override;
32 bool RLogHandlerDefault::Emit(
const ROOT::Experimental::RLogEntry &entry)
34 constexpr
static std::array<const char *, 5> sTag{{
"Debug",
"Info",
"Warning",
"Log",
"FATAL"}};
35 std::stringstream strm;
37 if (!entry.fGroup.empty())
38 strm <<
'[' << entry.fGroup <<
"] ";
39 strm << sTag[static_cast<int>(entry.fLevel)];
41 if (!entry.fFile.empty())
42 strm <<
" " << entry.fFile <<
':' << entry.fLine;
43 if (!entry.fFuncName.empty())
44 strm <<
" in " << entry.fFuncName;
46 static constexpr
const int errorLevelOld[] = {0, 1000, 2000, 3000, 6000};
47 (*::GetErrorHandler())(errorLevelOld[static_cast<int>(entry.fLevel)],
48 entry.fLevel == ROOT::Experimental::ELogLevel::kFatal,
49 strm.str().c_str(), entry.str().c_str());
54 ROOT::Experimental::RLogManager &ROOT::Experimental::RLogManager::Get()
56 static RLogManager instance(std::make_unique<RLogHandlerDefault>());