void JSONLayout::format()

in src/main/cpp/jsonlayout.cpp [128:208]


void JSONLayout::format(LogString& output,
	const spi::LoggingEventPtr& event,
	Pool& p) const
{
	output.reserve(m_priv->expectedPatternLength + event->getMessage().size());
	output.append(LOG4CXX_STR("{"));
	output.append(m_priv->prettyPrint ? LOG4CXX_EOL : LOG4CXX_STR(" "));

	if (m_priv->prettyPrint)
	{
		output.append(m_priv->ppIndentL1);
	}

	appendQuotedEscapedString(output, LOG4CXX_STR("timestamp"));
	output.append(LOG4CXX_STR(": "));
	LogString timestamp;
	m_priv->dateFormat.format(timestamp, event->getTimeStamp(), p);
	appendQuotedEscapedString(output, timestamp);
	output.append(LOG4CXX_STR(","));
	output.append(m_priv->prettyPrint ? LOG4CXX_EOL : LOG4CXX_STR(" "));

	if (m_priv->threadInfo)
	{
		if (m_priv->prettyPrint)
		{
			output.append(m_priv->ppIndentL1);
		}
		appendQuotedEscapedString(output, LOG4CXX_STR("thread"));
		output.append(LOG4CXX_STR(": "));
		appendQuotedEscapedString(output, event->getThreadName());
		output.append(LOG4CXX_STR(","));
		output.append(m_priv->prettyPrint ? LOG4CXX_EOL : LOG4CXX_STR(" "));
	}

	if (m_priv->prettyPrint)
	{
		output.append(m_priv->ppIndentL1);
	}

	appendQuotedEscapedString(output, LOG4CXX_STR("level"));
	output.append(LOG4CXX_STR(": "));
	LogString level;
	event->getLevel()->toString(level);
	appendQuotedEscapedString(output, level);
	output.append(LOG4CXX_STR(","));
	output.append(m_priv->prettyPrint ? LOG4CXX_EOL : LOG4CXX_STR(" "));

	if (m_priv->prettyPrint)
	{
		output.append(m_priv->ppIndentL1);
	}

	appendQuotedEscapedString(output, LOG4CXX_STR("logger"));
	output.append(LOG4CXX_STR(": "));
	appendQuotedEscapedString(output, event->getLoggerName());
	output.append(LOG4CXX_STR(","));
	output.append(m_priv->prettyPrint ? LOG4CXX_EOL : LOG4CXX_STR(" "));

	if (m_priv->prettyPrint)
	{
		output.append(m_priv->ppIndentL1);
	}

	appendQuotedEscapedString(output, LOG4CXX_STR("message"));
	output.append(LOG4CXX_STR(": "));
	appendQuotedEscapedString(output, event->getMessage());

	appendSerializedMDC(output, event);
	appendSerializedNDC(output, event);

	if (m_priv->locationInfo)
	{
		output.append(LOG4CXX_STR(","));
		output.append(m_priv->prettyPrint ? LOG4CXX_EOL : LOG4CXX_STR(" "));
		appendSerializedLocationInfo(output, event, p);
	}

	output.append(m_priv->prettyPrint ? LOG4CXX_EOL : LOG4CXX_STR(" "));
	output.append(LOG4CXX_STR("}"));
	output.append(LOG4CXX_EOL);
}