我的 C++ 程序中有以下(简化的)代码:
std::string DataRequest::toString() const {
LOG4CPLUS_TRACE(logger,
LOG4CPLUS_TEXT("symbol=" << m_contract.symbol));
std::ostringstream oss;
oss << "id=" << reqId
<< ",symbol=" << m_contract.symbol;
return oss.str();
}
和
int DataService::requestData(
DataRequest request) {
LOG4CPLUS_INFO(logger, LOG4CPLUS_TEXT("requestData: " << request.toString()));
}
然后,此代码会生成日志消息:
TRACE symbol=AAA
INFO symbol=AAArequestData: id=1,symbol=AAA
但是我期待
TRACE symbol=AAA
INFO requestData: id=1,symbol=AAA
由于在 log4cplus 消息中生成了一条 log4cplus 消息,因此它似乎将两条消息连接成一条消息。这是正常行为吗?是否有强制每条消息独立生成的解决方案?