diff options
Diffstat (limited to 'src/mongo/s/commands')
15 files changed, 132 insertions, 41 deletions
diff --git a/src/mongo/s/commands/cluster_coll_stats_cmd.cpp b/src/mongo/s/commands/cluster_coll_stats_cmd.cpp index 3d4667879f3..c1c9a24d5f8 100644 --- a/src/mongo/s/commands/cluster_coll_stats_cmd.cpp +++ b/src/mongo/s/commands/cluster_coll_stats_cmd.cpp @@ -32,6 +32,7 @@ #include "mongo/platform/basic.h" #include "mongo/db/commands.h" +#include "mongo/logv2/log.h" #include "mongo/rpc/get_status_from_command_result.h" #include "mongo/s/cluster_commands_helpers.h" #include "mongo/s/grid.h" @@ -173,7 +174,9 @@ public: } } } else { - log() << "mongos collstats doesn't know about: " << e.fieldName(); + LOGV2(22749, + "mongos collstats doesn't know about: {e_fieldName}", + "e_fieldName"_attr = e.fieldName()); } } diff --git a/src/mongo/s/commands/cluster_collection_mod_cmd.cpp b/src/mongo/s/commands/cluster_collection_mod_cmd.cpp index 21c8dc7a141..6bcfeac3521 100644 --- a/src/mongo/s/commands/cluster_collection_mod_cmd.cpp +++ b/src/mongo/s/commands/cluster_collection_mod_cmd.cpp @@ -33,6 +33,7 @@ #include "mongo/db/auth/authorization_session.h" #include "mongo/db/commands.h" +#include "mongo/logv2/log.h" #include "mongo/s/cluster_commands_helpers.h" #include "mongo/s/grid.h" #include "mongo/util/log.h" @@ -69,7 +70,11 @@ public: std::string& errmsg, BSONObjBuilder& output) override { const NamespaceString nss(CommandHelpers::parseNsCollectionRequired(dbName, cmdObj)); - LOG(1) << "collMod: " << nss << " cmd:" << redact(cmdObj); + LOGV2_DEBUG(22748, + 1, + "collMod: {nss} cmd:{cmdObj}", + "nss"_attr = nss, + "cmdObj"_attr = redact(cmdObj)); auto routingInfo = uassertStatusOK(Grid::get(opCtx)->catalogCache()->getCollectionRoutingInfo(opCtx, nss)); diff --git a/src/mongo/s/commands/cluster_create_indexes_cmd.cpp b/src/mongo/s/commands/cluster_create_indexes_cmd.cpp index affdf4e583f..242e8699766 100644 --- a/src/mongo/s/commands/cluster_create_indexes_cmd.cpp +++ b/src/mongo/s/commands/cluster_create_indexes_cmd.cpp @@ -32,6 +32,7 @@ #include "mongo/platform/basic.h" #include "mongo/db/commands.h" +#include "mongo/logv2/log.h" #include "mongo/rpc/get_status_from_command_result.h" #include "mongo/s/cluster_commands_helpers.h" #include "mongo/s/grid.h" @@ -70,7 +71,11 @@ public: std::string& errmsg, BSONObjBuilder& output) override { const NamespaceString nss(CommandHelpers::parseNsCollectionRequired(dbName, cmdObj)); - LOG(1) << "createIndexes: " << nss << " cmd:" << redact(cmdObj); + LOGV2_DEBUG(22750, + 1, + "createIndexes: {nss} cmd:{cmdObj}", + "nss"_attr = nss, + "cmdObj"_attr = redact(cmdObj)); createShardDatabase(opCtx, dbName); diff --git a/src/mongo/s/commands/cluster_drop_indexes_cmd.cpp b/src/mongo/s/commands/cluster_drop_indexes_cmd.cpp index 2b45943c3b8..55519ddda48 100644 --- a/src/mongo/s/commands/cluster_drop_indexes_cmd.cpp +++ b/src/mongo/s/commands/cluster_drop_indexes_cmd.cpp @@ -32,6 +32,7 @@ #include "mongo/platform/basic.h" #include "mongo/db/commands.h" +#include "mongo/logv2/log.h" #include "mongo/s/cluster_commands_helpers.h" #include "mongo/s/grid.h" #include "mongo/util/log.h" @@ -69,7 +70,11 @@ public: std::string& errmsg, BSONObjBuilder& output) override { const NamespaceString nss(CommandHelpers::parseNsCollectionRequired(dbName, cmdObj)); - LOG(1) << "dropIndexes: " << nss << " cmd:" << redact(cmdObj); + LOGV2_DEBUG(22751, + 1, + "dropIndexes: {nss} cmd:{cmdObj}", + "nss"_attr = nss, + "cmdObj"_attr = redact(cmdObj)); // If the collection is sharded, we target only the primary shard and the shards that own // chunks for the collection. We ignore IndexNotFound errors, because the index may have diff --git a/src/mongo/s/commands/cluster_get_last_error_cmd.cpp b/src/mongo/s/commands/cluster_get_last_error_cmd.cpp index 3d941e1ad3b..cfc28fd3682 100644 --- a/src/mongo/s/commands/cluster_get_last_error_cmd.cpp +++ b/src/mongo/s/commands/cluster_get_last_error_cmd.cpp @@ -38,6 +38,7 @@ #include "mongo/db/commands.h" #include "mongo/db/lasterror.h" #include "mongo/executor/task_executor_pool.h" +#include "mongo/logv2/log.h" #include "mongo/s/client/shard_registry.h" #include "mongo/s/cluster_commands_helpers.h" #include "mongo/s/cluster_last_error_info.h" @@ -105,9 +106,14 @@ Status enforceLegacyWriteConcern(OperationContext* opCtx, return swShard.getStatus(); } - LOG(3) << "enforcing write concern " << options << " on " << shardConnStr.toString() - << " at opTime " << opTime.getTimestamp().toStringPretty() << " with electionID " - << electionId; + LOGV2_DEBUG(22752, + 3, + "enforcing write concern {options} on {shardConnStr} at opTime " + "{opTime_getTimestamp_Pretty} with electionID {electionId}", + "options"_attr = options, + "shardConnStr"_attr = shardConnStr.toString(), + "opTime_getTimestamp_Pretty"_attr = opTime.getTimestamp().toStringPretty(), + "electionId"_attr = electionId); BSONObj gleCmd = buildGLECmdWithOpTime(options, opTime, electionId); requests.emplace_back(swShard.getValue()->getId(), gleCmd); diff --git a/src/mongo/s/commands/cluster_get_shard_version_cmd.cpp b/src/mongo/s/commands/cluster_get_shard_version_cmd.cpp index 78b3021a698..c4c5acaec63 100644 --- a/src/mongo/s/commands/cluster_get_shard_version_cmd.cpp +++ b/src/mongo/s/commands/cluster_get_shard_version_cmd.cpp @@ -35,6 +35,7 @@ #include "mongo/db/auth/action_type.h" #include "mongo/db/auth/authorization_session.h" #include "mongo/db/commands.h" +#include "mongo/logv2/log.h" #include "mongo/s/catalog_cache.h" #include "mongo/s/cluster_commands_helpers.h" #include "mongo/s/database_version_gen.h" @@ -114,7 +115,7 @@ public: bool exceedsSizeLimit = false; for (const auto& chunk : cm->chunks()) { - log() << redact(chunk.toString()); + LOGV2(22753, "{chunk}", "chunk"_attr = redact(chunk.toString())); if (!exceedsSizeLimit) { BSONArrayBuilder chunkBB(chunksArrBuilder.subarrayStart()); chunkBB.append(chunk.getMin()); diff --git a/src/mongo/s/commands/cluster_kill_op.cpp b/src/mongo/s/commands/cluster_kill_op.cpp index 89e00b7d497..353b200dbf2 100644 --- a/src/mongo/s/commands/cluster_kill_op.cpp +++ b/src/mongo/s/commands/cluster_kill_op.cpp @@ -42,6 +42,7 @@ #include "mongo/db/auth/authorization_session.h" #include "mongo/db/commands.h" #include "mongo/db/commands/kill_op_cmd_base.h" +#include "mongo/logv2/log.h" #include "mongo/rpc/metadata.h" #include "mongo/s/client/shard.h" #include "mongo/s/client/shard_registry.h" @@ -93,7 +94,7 @@ private: (opSepPos != (opToKill.size() - 1))); // can't be NN: auto shardIdent = opToKill.substr(0, opSepPos); - log() << "want to kill op: " << redact(opToKill); + LOGV2(22754, "want to kill op: {opToKill}", "opToKill"_attr = redact(opToKill)); // Will throw if shard id is not found auto shardStatus = Grid::get(opCtx)->shardRegistry()->getShard(opCtx, shardIdent); diff --git a/src/mongo/s/commands/cluster_move_chunk_cmd.cpp b/src/mongo/s/commands/cluster_move_chunk_cmd.cpp index 89732fa2407..f237fe1760d 100644 --- a/src/mongo/s/commands/cluster_move_chunk_cmd.cpp +++ b/src/mongo/s/commands/cluster_move_chunk_cmd.cpp @@ -38,6 +38,7 @@ #include "mongo/db/client.h" #include "mongo/db/commands.h" #include "mongo/db/write_concern_options.h" +#include "mongo/logv2/log.h" #include "mongo/s/balancer_configuration.h" #include "mongo/s/catalog_cache.h" #include "mongo/s/client/shard_registry.h" @@ -119,7 +120,7 @@ public: std::string msg(str::stream() << "Could not move chunk in '" << nss.ns() << "' to shard '" << toString << "' because that shard does not exist"); - log() << msg; + LOGV2(22755, "{msg}", "msg"_attr = msg); uasserted(ErrorCodes::ShardNotFound, msg); } diff --git a/src/mongo/s/commands/cluster_refine_collection_shard_key_cmd.cpp b/src/mongo/s/commands/cluster_refine_collection_shard_key_cmd.cpp index def3fc00af0..15560de3866 100644 --- a/src/mongo/s/commands/cluster_refine_collection_shard_key_cmd.cpp +++ b/src/mongo/s/commands/cluster_refine_collection_shard_key_cmd.cpp @@ -33,6 +33,7 @@ #include "mongo/db/auth/authorization_session.h" #include "mongo/db/commands.h" +#include "mongo/logv2/log.h" #include "mongo/s/grid.h" #include "mongo/s/request_types/refine_collection_shard_key_gen.h" #include "mongo/util/fail_point.h" @@ -59,7 +60,7 @@ public: nss)); if (MONGO_unlikely(hangRefineCollectionShardKeyAfterRefresh.shouldFail())) { - log() << "Hit hangRefineCollectionShardKeyAfterRefresh failpoint"; + LOGV2(22756, "Hit hangRefineCollectionShardKeyAfterRefresh failpoint"); hangRefineCollectionShardKeyAfterRefresh.pauseWhileSet(opCtx); } diff --git a/src/mongo/s/commands/cluster_set_index_commit_quorum_cmd.cpp b/src/mongo/s/commands/cluster_set_index_commit_quorum_cmd.cpp index 5074b7da454..6848eee5371 100644 --- a/src/mongo/s/commands/cluster_set_index_commit_quorum_cmd.cpp +++ b/src/mongo/s/commands/cluster_set_index_commit_quorum_cmd.cpp @@ -37,6 +37,7 @@ #include "mongo/db/auth/authorization_session.h" #include "mongo/db/commands.h" #include "mongo/db/commands/set_index_commit_quorum_gen.h" +#include "mongo/logv2/log.h" #include "mongo/s/cluster_commands_helpers.h" #include "mongo/util/log.h" @@ -85,8 +86,11 @@ public: void typedRun(OperationContext* opCtx) { BSONObj cmdObj = request().toBSON(BSONObj()); - LOG(1) << "setIndexCommitQuorum: " << request().getNamespace() - << " cmd:" << redact(cmdObj); + LOGV2_DEBUG(22757, + 1, + "setIndexCommitQuorum: {request_getNamespace} cmd:{cmdObj}", + "request_getNamespace"_attr = request().getNamespace(), + "cmdObj"_attr = redact(cmdObj)); scatterGatherOnlyVersionIfUnsharded( opCtx, diff --git a/src/mongo/s/commands/cluster_split_cmd.cpp b/src/mongo/s/commands/cluster_split_cmd.cpp index 0ea00d0138d..4a89095ea0f 100644 --- a/src/mongo/s/commands/cluster_split_cmd.cpp +++ b/src/mongo/s/commands/cluster_split_cmd.cpp @@ -39,6 +39,7 @@ #include "mongo/db/auth/authorization_session.h" #include "mongo/db/commands.h" #include "mongo/db/field_parser.h" +#include "mongo/logv2/log.h" #include "mongo/s/catalog_cache.h" #include "mongo/s/client/shard_registry.h" #include "mongo/s/cluster_commands_helpers.h" @@ -254,10 +255,14 @@ public: cm->getShardKeyPattern(), ChunkRange(chunk->getMin(), chunk->getMax())); - log() << "Splitting chunk " - << redact(ChunkRange(chunk->getMin(), chunk->getMax()).toString()) - << " in collection " << nss.ns() << " on shard " << chunk->getShardId() << " at key " - << redact(splitPoint); + LOGV2(22758, + "Splitting chunk {ChunkRange_chunk_getMin_chunk_getMax} in collection {nss_ns} on " + "shard {chunk_getShardId} at key {splitPoint}", + "ChunkRange_chunk_getMin_chunk_getMax"_attr = + redact(ChunkRange(chunk->getMin(), chunk->getMax()).toString()), + "nss_ns"_attr = nss.ns(), + "chunk_getShardId"_attr = chunk->getShardId(), + "splitPoint"_attr = redact(splitPoint)); uassertStatusOK( shardutil::splitChunkAtMultiplePoints(opCtx, diff --git a/src/mongo/s/commands/cluster_write_cmd.cpp b/src/mongo/s/commands/cluster_write_cmd.cpp index c0370d168b0..29ed31f4393 100644 --- a/src/mongo/s/commands/cluster_write_cmd.cpp +++ b/src/mongo/s/commands/cluster_write_cmd.cpp @@ -43,6 +43,7 @@ #include "mongo/db/stats/counters.h" #include "mongo/db/storage/duplicate_key_error_info.h" #include "mongo/executor/task_executor_pool.h" +#include "mongo/logv2/log.h" #include "mongo/rpc/get_status_from_command_result.h" #include "mongo/s/client/num_hosts_targeted_metrics.h" #include "mongo/s/client/shard_registry.h" @@ -206,7 +207,7 @@ bool handleWouldChangeOwningShardError(OperationContext* opCtx, boost::optional<BSONObj> upsertedId; if (isRetryableWrite) { if (MONGO_unlikely(hangAfterThrowWouldChangeOwningShardRetryableWrite.shouldFail())) { - log() << "Hit hangAfterThrowWouldChangeOwningShardRetryableWrite failpoint"; + LOGV2(22759, "Hit hangAfterThrowWouldChangeOwningShardRetryableWrite failpoint"); hangAfterThrowWouldChangeOwningShardRetryableWrite.pauseWhileSet(opCtx); } RouterOperationContextSession routerSession(opCtx); diff --git a/src/mongo/s/commands/document_shard_key_update_util.cpp b/src/mongo/s/commands/document_shard_key_update_util.cpp index d576e496ea6..f7c2c33bba0 100644 --- a/src/mongo/s/commands/document_shard_key_update_util.cpp +++ b/src/mongo/s/commands/document_shard_key_update_util.cpp @@ -33,6 +33,7 @@ #include "mongo/base/status_with.h" #include "mongo/db/namespace_string.h" +#include "mongo/logv2/log.h" #include "mongo/s/would_change_owning_shard_exception.h" #include "mongo/s/write_ops/batched_command_request.h" #include "mongo/s/write_ops/batched_command_response.h" @@ -78,7 +79,7 @@ bool executeOperationsAsPartOfShardKeyUpdate(OperationContext* opCtx, } if (MONGO_unlikely(hangBeforeInsertOnUpdateShardKey.shouldFail())) { - log() << "Hit hangBeforeInsertOnUpdateShardKey failpoint"; + LOGV2(22760, "Hit hangBeforeInsertOnUpdateShardKey failpoint"); hangBeforeInsertOnUpdateShardKey.pauseWhileSet(opCtx); } diff --git a/src/mongo/s/commands/flush_router_config_cmd.cpp b/src/mongo/s/commands/flush_router_config_cmd.cpp index 3c180ea36b0..e84e66cdfd7 100644 --- a/src/mongo/s/commands/flush_router_config_cmd.cpp +++ b/src/mongo/s/commands/flush_router_config_cmd.cpp @@ -32,6 +32,7 @@ #include "mongo/platform/basic.h" #include "mongo/db/commands.h" +#include "mongo/logv2/log.h" #include "mongo/s/grid.h" #include "mongo/s/is_mongos.h" #include "mongo/util/log.h" @@ -86,16 +87,16 @@ public: const auto argumentElem = cmdObj.firstElement(); if (argumentElem.isNumber() || argumentElem.isBoolean()) { - LOG(0) << "Routing metadata flushed for all databases"; + LOGV2(22761, "Routing metadata flushed for all databases"); catalogCache->purgeAllDatabases(); } else { const auto ns = argumentElem.checkAndGetStringData(); if (nsIsDbOnly(ns)) { - LOG(0) << "Routing metadata flushed for database " << ns; + LOGV2(22762, "Routing metadata flushed for database {ns}", "ns"_attr = ns); catalogCache->purgeDatabase(ns); } else { const NamespaceString nss(ns); - LOG(0) << "Routing metadata flushed for collection " << nss; + LOGV2(22763, "Routing metadata flushed for collection {nss}", "nss"_attr = nss); catalogCache->purgeCollection(nss); } } diff --git a/src/mongo/s/commands/strategy.cpp b/src/mongo/s/commands/strategy.cpp index 17b6aa0bc14..e130e65b707 100644 --- a/src/mongo/s/commands/strategy.cpp +++ b/src/mongo/s/commands/strategy.cpp @@ -61,6 +61,7 @@ #include "mongo/db/stats/counters.h" #include "mongo/db/transaction_validation.h" #include "mongo/db/views/resolved_view.h" +#include "mongo/logv2/log.h" #include "mongo/rpc/factory.h" #include "mongo/rpc/get_status_from_command_result.h" #include "mongo/rpc/metadata/logical_time_metadata.h" @@ -136,12 +137,18 @@ void appendRequiredFieldsToResponse(OperationContext* opCtx, BSONObjBuilder* res // Add operationTime. auto operationTime = OperationTimeTracker::get(opCtx)->getMaxOperationTime(); if (operationTime != LogicalTime::kUninitialized) { - LOG(5) << "Appending operationTime: " << operationTime.asTimestamp(); + LOGV2_DEBUG(22764, + 5, + "Appending operationTime: {operationTime_asTimestamp}", + "operationTime_asTimestamp"_attr = operationTime.asTimestamp()); responseBuilder->append(kOperationTime, operationTime.asTimestamp()); } else if (now != LogicalTime::kUninitialized) { // If we don't know the actual operation time, use the cluster time instead. This is // safe but not optimal because we can always return a later operation time than actual. - LOG(5) << "Appending clusterTime as operationTime " << now.asTimestamp(); + LOGV2_DEBUG(22765, + 5, + "Appending clusterTime as operationTime {now_asTimestamp}", + "now_asTimestamp"_attr = now.asTimestamp()); responseBuilder->append(kOperationTime, now.asTimestamp()); } @@ -446,8 +453,12 @@ void runCommand(OperationContext* opCtx, if (const auto wcDefault = ReadWriteConcernDefaults::get(opCtx->getServiceContext()) .getDefaultWriteConcern(opCtx)) { wc = *wcDefault; - LOG(2) << "Applying default writeConcern on " << request.getCommandName() << " of " - << wcDefault->toBSON(); + LOGV2_DEBUG( + 22766, + 2, + "Applying default writeConcern on {request_getCommandName} of {wcDefault}", + "request_getCommandName"_attr = request.getCommandName(), + "wcDefault"_attr = wcDefault->toBSON()); } } @@ -473,8 +484,13 @@ void runCommand(OperationContext* opCtx, stdx::lock_guard<Client> lk(*opCtx->getClient()); readConcernArgs = std::move(*rcDefault); } - LOG(2) << "Applying default readConcern on " - << invocation->definition()->getName() << " of " << *rcDefault; + LOGV2_DEBUG(22767, + 2, + "Applying default readConcern on {invocation_definition_getName} " + "of {rcDefault}", + "invocation_definition_getName"_attr = + invocation->definition()->getName(), + "rcDefault"_attr = *rcDefault); // Update the readConcernSupport, since the default RC was applied. readConcernSupport = invocation->supportsReadConcern(readConcernArgs.getLevel()); @@ -795,8 +811,13 @@ DbResponse Strategy::queryOp(OperationContext* opCtx, const NamespaceString& nss audit::logQueryAuthzCheck(client, nss, q.query, status.code()); uassertStatusOK(status); - LOG(3) << "query: " << q.ns << " " << redact(q.query) << " ntoreturn: " << q.ntoreturn - << " options: " << q.queryOptions; + LOGV2_DEBUG(22768, + 3, + "query: {q_ns} {q_query} ntoreturn: {q_ntoreturn} options: {q_queryOptions}", + "q_ns"_attr = q.ns, + "q_query"_attr = redact(q.query), + "q_ntoreturn"_attr = q.ntoreturn, + "q_queryOptions"_attr = q.queryOptions); if (q.queryOptions & QueryOption_Exhaust) { uasserted(18526, @@ -894,7 +915,10 @@ DbResponse Strategy::clientCommand(OperationContext* opCtx, const Message& m) { if (ErrorCodes::isConnectionFatalMessageParseError(ex.code())) propagateException = true; - LOG(1) << "Exception thrown while parsing command " << causedBy(redact(ex)); + LOGV2_DEBUG(22769, + 1, + "Exception thrown while parsing command {causedBy_ex}", + "causedBy_ex"_attr = causedBy(redact(ex))); throw; } }(); @@ -904,12 +928,25 @@ DbResponse Strategy::clientCommand(OperationContext* opCtx, const Message& m) { // Execute. std::string db = request.getDatabase().toString(); try { - LOG(3) << "Command begin db: " << db << " msg id: " << m.header().getId(); + LOGV2_DEBUG(22770, + 3, + "Command begin db: {db} msg id: {m_header_getId}", + "db"_attr = db, + "m_header_getId"_attr = m.header().getId()); runCommand(opCtx, request, m.operation(), reply.get(), &errorBuilder); - LOG(3) << "Command end db: " << db << " msg id: " << m.header().getId(); + LOGV2_DEBUG(22771, + 3, + "Command end db: {db} msg id: {m_header_getId}", + "db"_attr = db, + "m_header_getId"_attr = m.header().getId()); } catch (const DBException& ex) { - LOG(1) << "Exception thrown while processing command on " << db - << " msg id: " << m.header().getId() << causedBy(redact(ex)); + LOGV2_DEBUG(22772, + 1, + "Exception thrown while processing command on {db} msg id: " + "{m_header_getId}{causedBy_ex}", + "db"_attr = db, + "m_header_getId"_attr = m.header().getId(), + "causedBy_ex"_attr = causedBy(redact(ex))); // Record the exception in CurOp. CurOp::get(opCtx)->debug().errInfo = ex.toStatus(); @@ -1046,7 +1083,10 @@ void Strategy::killCursors(OperationContext* opCtx, DbMessage* dbm) { boost::optional<NamespaceString> nss = manager->getNamespaceForCursorId(cursorId); if (!nss) { - LOG(3) << "Can't find cursor to kill. Cursor id: " << cursorId << "."; + LOGV2_DEBUG(22773, + 3, + "Can't find cursor to kill. Cursor id: {cursorId}.", + "cursorId"_attr = cursorId); continue; } @@ -1057,19 +1097,30 @@ void Strategy::killCursors(OperationContext* opCtx, DbMessage* dbm) { auto authzStatus = manager->checkAuthForKillCursors(opCtx, *nss, cursorId, authChecker); audit::logKillCursorsAuthzCheck(client, *nss, cursorId, authzStatus.code()); if (!authzStatus.isOK()) { - LOG(3) << "Not authorized to kill cursor. Namespace: '" << *nss - << "', cursor id: " << cursorId << "."; + LOGV2_DEBUG( + 22774, + 3, + "Not authorized to kill cursor. Namespace: '{nss}', cursor id: {cursorId}.", + "nss"_attr = *nss, + "cursorId"_attr = cursorId); continue; } Status killCursorStatus = manager->killCursor(opCtx, *nss, cursorId); if (!killCursorStatus.isOK()) { - LOG(3) << "Can't find cursor to kill. Namespace: '" << *nss - << "', cursor id: " << cursorId << "."; + LOGV2_DEBUG(22775, + 3, + "Can't find cursor to kill. Namespace: '{nss}', cursor id: {cursorId}.", + "nss"_attr = *nss, + "cursorId"_attr = cursorId); continue; } - LOG(3) << "Killed cursor. Namespace: '" << *nss << "', cursor id: " << cursorId << "."; + LOGV2_DEBUG(22776, + 3, + "Killed cursor. Namespace: '{nss}', cursor id: {cursorId}.", + "nss"_attr = *nss, + "cursorId"_attr = cursorId); } } |