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 メッセージが生成されているため、2 つのメッセージが 1 つのメッセージに連結されているように見えます。これは正常な動作ですか?各メッセージを強制的に個別に生成する解決策はありますか?