in src/main/cpp/fmtlayout.cpp [88:144]
void FMTLayout::format(LogString& output,
const spi::LoggingEventPtr& event,
log4cxx::helpers::Pool&) const
{
output.reserve(m_priv->expectedPatternLength + event->getMessage().size());
auto locationFull = fmt::format("{}({})",
event->getLocationInformation().getFileName(),
event->getLocationInformation().getLineNumber());
LogString ndc;
event->getNDC(ndc);
#if LOG4CXX_LOGCHAR_IS_WCHAR || LOG4CXX_LOGCHAR_IS_UNICHAR
LOG4CXX_ENCODE_CHAR(sNDC, ndc);
LOG4CXX_ENCODE_CHAR(sPattern, m_priv->conversionPattern);
LOG4CXX_ENCODE_CHAR(sLogger, event->getLoggerName());
LOG4CXX_ENCODE_CHAR(sLevel, event->getLevel()->toString());
LOG4CXX_ENCODE_CHAR(sMsg, event->getMessage());
LOG4CXX_ENCODE_CHAR(sThread, event->getThreadName());
LOG4CXX_ENCODE_CHAR(endOfLine, LOG4CXX_EOL);
#else
auto& sNDC = ndc;
auto& sPattern = m_priv->conversionPattern;
auto& sLogger = event->getLoggerName();
auto sLevel = event->getLevel()->toString();
auto& sMsg = event->getMessage();
auto& sThread = event->getThreadName();
auto endOfLine = LOG4CXX_EOL;
#endif
fmt::format_to(std::back_inserter(output),
fmt::runtime(sPattern),
fmt::arg("d", event->getChronoTimeStamp()),
fmt::arg("c", sLogger),
fmt::arg("logger", sLogger),
fmt::arg("f", event->getLocationInformation().getShortFileName()),
fmt::arg("shortfilename", event->getLocationInformation().getShortFileName()),
fmt::arg("F", event->getLocationInformation().getFileName()),
fmt::arg("filename", event->getLocationInformation().getFileName()),
fmt::arg("l", locationFull),
fmt::arg("location", locationFull),
fmt::arg("L", event->getLocationInformation().getLineNumber()),
fmt::arg("line", event->getLocationInformation().getLineNumber()),
fmt::arg("m", sMsg),
fmt::arg("message", sMsg),
fmt::arg("M", event->getLocationInformation().getMethodName()),
fmt::arg("method", event->getLocationInformation().getMethodName()),
fmt::arg("n", endOfLine),
fmt::arg("newline", endOfLine),
fmt::arg("p", sLevel),
fmt::arg("level", sLevel),
fmt::arg("r", event->getTimeStamp()),
fmt::arg("t", sThread),
fmt::arg("thread", sThread),
fmt::arg("T", sThread),
fmt::arg("threadname", sThread),
fmt::arg("x", sNDC),
fmt::arg("ndc", sNDC)
);
}