Menu Docs

Página inicial do DocsDesenvolver aplicaçõesManual do MongoDB

getLog

Nesta página

  • Definição
  • Sintaxe
  • Campos de comando
  • Saída
  • Comportamento
  • Filtragem
  • Exemplos
getLog

getLog é um comando administrativo que retorna os eventos mongod 1024 registrados mais recentes. getLog não lê dados de registro do arquivo de log mongod . Em vez disso, ele lê dados de um cache de RAM de mongod eventos registrados. Para executar getLog, use o método db.adminCommand() .

getLog retorna dados de registro no JSON estendido relaxado v2. Formato 0 . Anteriormente, os dados de registro eram retornados como texto simples.

O comando tem a seguinte sintaxe:

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

Os valores possíveis para getLog são:

Valor
Descrição
*
Retorna uma lista dos valores disponíveis para o comando getLog .
global
Retorna a saída combinada de todas as entradas de log recentes.
startupWarnings
Retorna entradas de registro que podem conter erros ou avisos do registro do MongoDB de quando o processo atual foi iniciado. Se mongod foi iniciado sem avisos, esse filtro pode retornar uma array vazia.

Observação

O comando getLog não aceita mais o valor rs , pois esta categorização do tipo de mensagem foi descontinuada. Em vez disso, as mensagens de registro agora são sempre identificadas por seu componente , incluindo REPL para mensagens de replicação. Consulte Filtrando por componente para ver exemplos de análise de registros que filtram no campo de componente.

Se especificado *, o comando retorna um documento com os nomes dos outros valores aceitáveis.

Caso contrário, o comando retorna um documento que inclui os seguintes campos:

  • totalLinesWritten campo que contém o número de eventos de log

  • log campo que contém uma array de eventos de log

  • Um documento de resposta db.adminCommand() contendo informações de status e data e hora.

getLog trunca qualquer evento que contenha mais de 1024 caracteres.

getLog retorna dados de registro no JSON estendido relaxado v2. Formato 0 , usando as seguintes sequências de escape para renderizar a saída de registro como JSON válido:

Caractere representado
Sequência de fuga
Aspas (")
\"
Barra invertida (\)
\\
Backspace (0x08)
\b
Formfeed (0x0C)
\f
Newline (0x0A)
\n
Quebra de linha (0x0D)
\r
Aba horizontal (0x09)
\t

Os caracteres de controle não mencionados são representados como \uXXXX, sendo "XXXX" o ponto de código Unicode em formato hexadecimal. Bytes com codificação UTF-8 inválida são substituídos pelo caractere de substituição unicode representado por \ufffd.

getLog a saída pode ser filtrada para tornar os resultados mais legíveis ou para corresponder a critérios específicos.

A operação a seguir imprime apenas o campo log (que contém a array de todos os eventos de log recentes) e remove caracteres que escapam de cada mensagem de log:

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

Esta operação apresenta a saída getLog no mesmo formato que o MongoDB log file.

Observação

getLog mostra somente os eventos 1024 mongod e não é uma substituição para o MongoDB log file.

Ao trabalhar com o log estruturado do MongoDB, o utilitário de linha de comando jqde terceiros é uma ferramenta útil que permite a impressão fácil e bonita de entradas de registro e a poderosa correspondência e filtragem baseadas em chaves.

jq é um analisador JSON de código aberto, e está disponível para Linux, Windows e macOS.

Para usar jq com saída getLog , você deve usar a opção --eval para mongosh. A operação a seguir usa jq para filtrar o componente REPL e apresentar apenas as mensagens de registro associadas à replicação:

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

Certifique-se de fornecer quaisquer parâmetros específicos da conexão necessários para mongosh conforme necessário, como --host ou --port.

Consulte Analisando Mensagens de registro estruturadas para mais exemplos de filtragem de saída de registro utilizando jq. A sintaxe do jq apresentada em cada exemplo vinculado pode ser utilizada com a operação mongo --eval acima com ajuste menor. Por exemplo, a seguinte sintaxe adapta o exemplo "Contando mensagens únicas" vinculado para uso com getLog:

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

A operação a seguir, executada a partir de mongosh, retorna os filtros de log disponíveis para passar para getLog:

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

A operação retorna o seguinte documento:

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

A operação a seguir, executada a partir de mongosh, recupera os eventos global mais recentes para mongod:

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

A operação retorna um documento semelhante ao seguinte:

{
"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" : NumberLong(8)
}
},
"$clusterTime" : {
"clusterTime" : Timestamp(<ts>),
"signature" : {
"hash" : BinData(<bin>),
"keyId" : NumberLong(0)
}
},
"operationTime" : Timestamp(<ts>)
}
← getCmdLineOpts