Docs Menu
Docs Home
/ /
Diagnósticos

getLog (comando de base de datos)

getLog

getLog es un comando administrativo que devuelve el 1024 registrado más reciente mongod eventos. getLog no lee los datos de registro del mongod archivo. En su lugar, lee los datos de una caché RAM de mongod eventos registrados. Para getLog ejecutar, utilice el db.adminCommand() método.

getLog devuelve datos de registro en JSON ampliado relajado v2.0 escapados formato. Anteriormente, los datos del registro se devolvían como texto simple.

Este comando está disponible en implementaciones alojadas en los siguientes entornos:

  • MongoDB Atlas: El servicio totalmente gestionado para implementaciones de MongoDB en la nube

Nota

Este comando es compatible con todos los clústeres de MongoDB Atlas. Para obtener información sobre el soporte de Atlas para todos los comandos, consulte Comandos no compatibles.

  • MongoDB Enterprise: La versión basada en suscripción y autogestionada de MongoDB

  • MongoDB Community: La versión de MongoDB con código fuente disponible, de uso gratuito y autogestionada.

El comando tiene la siguiente sintaxis:

db.adminCommand(
{
getLog: <value>
}
)

Los posibles valores para getLog son:

Valor
Descripción

*

Devuelve una lista de los valores disponibles para el getLog comando.

global

Devuelve la salida combinada de todas las entradas de registro recientes.

startupWarnings

Devuelve entradas de registro que pueden contener errores o advertencias del registro de MongoDB desde el inicio del proceso actual. Si se inició sin advertencias, este filtro puede devolver una matriz mongod vacía.

Nota

El comando ya no acepta getLog el rs valor, ya que esta categorización del tipo de mensaje ha quedado obsoleta. En su lugar, los mensajes de registro ahora se identifican siempre por su componente, incluido REPL para los mensajes de replicación.Consulte Filtrado por componente para ver ejemplos de análisis de registros que filtran por el campo de componente.

Si se especifica *, el comando devuelve un documento con los nombres de los otros valores aceptables.

De lo contrario, el comando devuelve un documento que incluye los siguientes campos:

  • totalLinesWritten campo que contiene el número de eventos de registro

  • log campo que contiene una matriz de eventos de registro

  • Un db.adminCommand() documento de respuesta, que contiene información de estado y marca de tiempo.

getLog trunca cualquier evento que contenga más de 1024 caracteres.

getLog devuelve datos de registro en formato JSON relajado extendido v2.0 escapado, utilizando las siguientes secuencias de escape para representar la salida del registro como JSON válido:

Carácter representado
Secuencia de escape

Comillas (")

\"

Backslash (\)

\\

Retroceso (0x08)

\b

Formfeed (0x0C)

\f

Nueva línea (0x0A)

\n

Retorno de carro (0x0D)

\r

Horizontal tab (0x09)

\t

Los caracteres de control que no se enumeran arriba se escapan con \uXXXX, donde "XXXX" es el punto de código Unicode en hexadecimal. Los bytes con codificación UTF-8 no válida se reemplazan por el carácter de reemplazo Unicode representado por \ufffd.

getLog la salida puede filtrarse para que los resultados sean más legibles o para coincidir con criterios específicos.

La siguiente operación imprime solo el log campo (que contiene la matriz de todos los eventos de registro recientes) y elimina los caracteres de escape de cada mensaje de registro:

db.adminCommand( { getLog:'global'} ).log.forEach(x => {print(x)})

Esta operación presenta la salida en el mismo formato getLog que log file MongoDB.

Nota

getLog solo muestra los 1024 mongod eventos registrados más recientes y ​​no reemplaza a MongoDB.log file

Al trabajar con el registro estructurado de MongoDB, puede utilizar la utilidad de línea de comandos jq de terceros para una fácil impresión de entradas de registro y un potente filtrado y coincidencia basados ​​en claves.

jq es un analizador JSON de código abierto y está disponible para Linux, Windows y macOS.

Para usar jq con la salidagetLog, debe usar la opción--evalparamongosh. La siguiente operación usa jq para filtrar el componente REPL y presentar solo los mensajes de registro asociados con la replicación:

mongosh --quiet --eval "db.adminCommand( { getLog:'global'} ).log.forEach(x => {print(x)})" | jq -c '. | select(.c=="REPL")'

Asegúrese de proporcionar todos los parámetros específicos de conexión necesarios a según sea necesario,mongosh como --host --porto.

Consulta Analizar los mensajes de registro estructurados para ver más ejemplos de cómo filtrar la salida de registro usando jq. La sintaxis de jq presentada en cada ejemplo vinculado puede usarse con la operación mongo --eval anterior con ligeros ajustes. Por ejemplo, la siguiente sintaxis adapta el ejemplo vinculado "Contando mensajes únicos" para su uso con getLog:

mongosh --quiet --eval "db.adminCommand( { getLog:'global'} ).log.forEach(x => {print(x)})" | jq -r ".msg" | sort | uniq -c | sort -rn | head -10

La siguiente operación, ejecutada desde mongosh, devuelve los filtros de registros disponibles para pasarlos a getLog:

db.adminCommand( { getLog: "*" } )

La operación devuelve el siguiente documento:

{ "names" : [ "global", "startupWarnings" ], "ok" : 1 }

La siguiente operación, ejecutada desde, recupera mongosh los global eventos más recientes mongod para:

db.adminCommand( { getLog : "global" } )

La operación devuelve un documento similar al siguiente:

{
"totalLinesWritten" : <num>,
"log" : [
"{\"t\":{\"$date\":\"2020-05-19T19:10:48.871+00:00\"},\"s\":\"I\", \"c\":\"STORAGE\", \"id\":4615611, \"ctx\":\"initandlisten\",\"msg\":\"MongoDB starting\",\"attr\":{\"pid\":12345,\"port\":27001,\"dbPath\":\"/var/lib/mongo\",\"architecture\":\"64-bit\",\"host\":\"server1.example.com\"}}",
"{\"t\":{\"$date\":\"2020-05-19T19:10:48.871+00:00\"},\"s\":\"I\", \"c\":\"CONTROL\", \"id\":23403, \"ctx\":\"initandlisten\",\"msg\":\"Build Info\",\"attr\":{\"buildInfo\":{\"version\":\"4.4.0\",\"gitVersion\":\"328c35e4b883540675fb4b626c53a08f74e43cf0\",\"openSSLVersion\":\"OpenSSL 1.1.1c FIPS 28 May 2019\",\"modules\":[],\"allocator\":\"tcmalloc\",\"environment\":{\"distmod\":\"rhel80\",\"distarch\":\"x86_64\",\"target_arch\":\"x86_64\"}}}}",
"{\"t\":{\"$date\":\"2020-05-19T19:10:48.871+00:00\"},\"s\":\"I\", \"c\":\"CONTROL\", \"id\":51765, \"ctx\":\"initandlisten\",\"msg\":\"Operating System\",\"attr\":{\"os\":{\"name\":\"CentOS Linux release 8.0.1905 (Core) \",\"version\":\"Kernel 4.18.0-80.11.2.el8_0.x86_64\"}}}",
"{\"t\":{\"$date\":\"2020-05-19T19:10:48.871+00:00\"},\"s\":\"I\", \"c\":\"CONTROL\", \"id\":21951, \"ctx\":\"initandlisten\",\"msg\":\"Options set by command line\",\"attr\":{\"options\":{\"config\":\"/etc/mongod.conf\",\"net\":{\"bindIp\":\"127.0.0.1\",\"port\":27001},\"processManagement\":{\"fork\":true,\"timeZoneInfo\":\"/usr/share/zoneinfo\"},\"replication\":{\"replSetName\":\"repl-shard1\"},\"sharding\":{\"clusterRole\":\"shardsvr\"},\"storage\":{\"dbPath\":\"/var/lib/mongo\",\"journal\":{\"enabled\":true},\"wiredTiger\":{\"engineConfig\":{\"cacheSizeGB\":0.1}}},\"systemLog\":{\"destination\":\"file\",\"logAppend\":true,\"path\":\"/var/log/mongodb/mongod.log\"}}}}",
"{\"t\":{\"$date\":\"2020-05-19T19:10:48.873+00:00\"},\"s\":\"I\", \"c\":\"STORAGE\", \"id\":22270, \"ctx\":\"initandlisten\",\"msg\":\"Storage engine to use detected by data files\",\"attr\":{\"dbpath\":\"/var/lib/mongo\",\"storageEngine\":\"wiredTiger\"}}",
"{\"t\":{\"$date\":\"2020-05-19T19:10:48.873+00:00\"},\"s\":\"I\", \"c\":\"STORAGE\", \"id\":22315, \"ctx\":\"initandlisten\",\"msg\":\"wiredtiger_open config\",\"attr\":{\"config\":\"create,cache_size=102M,session_max=33000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000,close_scan_interval=10,close_handle_minimum=250),statistics_log=(wait=0),verbose=[recovery_progress,checkpoint_progress,compact_progress],\"}}",
"{\"t\":{\"$date\":\"2020-05-19T19:10:58.877+00:00\"},\"s\":\"I\", \"c\":\"CONNPOOL\", \"id\":22576, \"ctx\":\"ReplicaSetMonitor-TaskExecutor\",\"msg\":\"Connecting\",\"attr\":{\"hostAndPort\":\"server1.example.com:27001\"}}",
"{\"t\":{\"$date\":\"2020-05-19T19:10:58.877+00:00\"},\"s\":\"I\", \"c\":\"CONNPOOL\", \"id\":22576, \"ctx\":\"ReplicaSetMonitor-TaskExecutor\",\"msg\":\"Connecting\",\"attr\":{\"hostAndPort\":\"server2.example.com:27001\"}}",
"{\"t\":{\"$date\":\"2020-05-19T19:10:58.877+00:00\"},\"s\":\"I\", \"c\":\"CONNPOOL\", \"id\":22576, \"ctx\":\"ReplicaSetMonitor-TaskExecutor\",\"msg\":\"Connecting\",\"attr\":{\"hostAndPort\":\"server3.example.com:27001\"}}",
"{\"t\":{\"$date\":\"2020-05-19T19:10:58.877+00:00\"},\"s\":\"I\", \"c\":\"CONNPOOL\", \"id\":22576, \"ctx\":\"ReplicaSetMonitor-TaskExecutor\",\"msg\":\"Connecting\",\"attr\":{\"hostAndPort\":\"server4.example.com:27001\"}}",
"{\"t\":{\"$date\":\"2020-05-19T19:10:58.877+00:00\"},\"s\":\"I\", \"c\":\"CONNPOOL\", \"id\":22576, \"ctx\":\"ReplicaSetMonitor-TaskExecutor\",\"msg\":\"Connecting\",\"attr\":{\"hostAndPort\":\"server5.example.com:27001\"}}",
"{\"t\":{\"$date\":\"2020-05-19T19:10:58.877+00:00\"},\"s\":\"I\", \"c\":\"CONNPOOL\", \"id\":22576, \"ctx\":\"ReplicaSetMonitor-TaskExecutor\",\"msg\":\"Connecting\",\"attr\":{\"hostAndPort\":\"server6.example.com:27001\"}}",
"{\"t\":{\"$date\":\"2020-05-19T19:10:58.877+00:00\"},\"s\":\"I\", \"c\":\"NETWORK\", \"id\":23015, \"ctx\":\"listener\",\"msg\":\"Listening on\",\"attr\":{\"address\":\"/tmp/mongodb-27001.sock\"}}",
"{\"t\":{\"$date\":\"2020-05-19T19:10:58.877+00:00\"},\"s\":\"I\", \"c\":\"NETWORK\", \"id\":23015, \"ctx\":\"listener\",\"msg\":\"Listening on\",\"attr\":{\"address\":\"127.0.0.1\"}}",
"{\"t\":{\"$date\":\"2020-05-19T19:10:58.877+00:00\"},\"s\":\"I\", \"c\":\"NETWORK\", \"id\":23016, \"ctx\":\"listener\",\"msg\":\"Waiting for connections\",\"attr\":{\"port\":27001,\"ssl\":\"off\"}}",
"{\"t\":{\"$date\":\"2020-05-19T19:15:10.392+00:00\"},\"s\":\"I\", \"c\":\"NETWORK\", \"id\":22943, \"ctx\":\"listener\",\"msg\":\"connection accepted\",\"attr\":{\"remote\":\"127.0.0.1:35724\",\"sessionId\":67,\"connectionCount\":30}}",
"{\"t\":{\"$date\":\"2020-05-19T19:15:10.393+00:00\"},\"s\":\"I\", \"c\":\"NETWORK\", \"id\":51800, \"ctx\":\"conn67\",\"msg\":\"client metadata\",\"attr\":{\"remote\":\"127.0.0.1:35724\",\"client\":\"conn67\",\"doc\":{\"application\":{\"name\":\"MongoDB Shell\"},\"driver\":{\"name\":\"MongoDB Internal Client\",\"version\":\"4.4.0\"},\"os\":{\"type\":\"Linux\",\"name\":\"CentOS Linux release 8.0.1905 (Core) \",\"architecture\":\"x86_64\",\"version\":\"Kernel 4.18.0-80.11.2.el8_0.x86_64\"}}}}"
],
"ok" : 1,
"$gleStats" : {
"lastOpTime" : Timestamp(<ts>),
"electionId" : ObjectId(<id>)
},
"lastCommittedOpTime" : Timestamp(<ts>),
"$configServerState" : {
"opTime" : {
"ts" : Timestamp(<ts>),
"t" : Long(8)
}
},
"$clusterTime" : {
"clusterTime" : Timestamp(<ts>),
"signature" : {
"hash" : BinData(<bin>),
"keyId" : Long(0)
}
},
"operationTime" : Timestamp(<ts>)
}

Volver

getCmdLineOpts

En esta página