Este é o site histórico da documentação 4D. As documentações estão sendo movidas progressivamente para developer.4d.com

Página Inicial

 
4D v19
Descrição de arquivos de log

Descrição de arquivos de log  


 

 

As aplicações 4D podem gerar vários arquivos de histórico que são úteis para depurar ou otimizar sua execução. Os registros geralmente são iniciados ou detidos utilizando os seletores dos comandos SET DATABASE PARAMETER ou WEB SET OPTION e são armazenados na pasta Logs do banco de dados (ver a seção Descrição dos Arquivos 4D).

A informação registrada necessita ser analizada para detectar e solucionar problemas. Este anexo oferece uma descrição completa dos  arquivos de histórico abaixo:

  • 4DRequestsLog.txt
  • 4DRequestsLog_ProcessInfo.txt
  • HTTPDebugLog.txt
  • 4DDebugLog.txt (standard and tabular)
  • 4DDiagnosticLog.txt,
  • 4DIMAPLog.txt, 4DPOP3Log.txt, and 4DSMTPLog.txt
  • ORDA client requests log file

 

Nota: Quando um arquivo de histórico pode ser gerado seja em 4D Server ou no cliente remoto a palavra "Server" é adicionada ao lado servidor do nome arquivo histórico, por exemplo  "4DRequestsLogServer.txt"

Estes arquivos de histórico compartem alguns campos para que possa estabelecer uma cronologia e estabelecer conexões entre entradas durante a depuração:

  • sequence_number: este número é único em todos os registros de depuração e são incrementados para cada nova entrada, independentemente do arquivo de histórico, para que possa conhecer a sequência exata das operações.
  • connection_uuid: para todo processo 4D criado em um cliente 4D que é conectada a um servidor, este UUID de conexão é registrada tanto no servidor como no cliente. Lhe permite identificar facilmente o cliente remoto que iniciou cada processo.

Este arquivo de histórico registra as pesquisas padrão realizadas pela máquina 4D Server ou a máquina remota 4D que executou o comando (excluindo as pesquisas Web).

Como iniciar este histórico:

  • No servidor:
     SET DATABASE PARAMETER(4D Server log recording;1) //do lado do servidor
  • Em um cliente:
     SET DATABASE PARAMETER(Client Log Recording;1) //do lado remoto

Nota: esta instrução também inicia o arquivo de histórico 4DRequestsLog_ProcessInfo.txt (ver abaixo).

Cabeçalhos

Este arquivo começa com os cabeçalhos abaixo:

  • Identificador de sessão de histórico
  • Nome de host de servidor que aloja a aplicação
  • Nome de inicio de sessão de usuário: inicia sessão no sistema operativo de usuário que executou a aplicação 4D no servidor.        

Conteúdo

Para cada petição, são registrados os campos abaixo:

Nome de campoDescrição
sequence_numberNúmero de operação único e sequêncial na sessão de registro
timeData e hora usando formato  ISO 8601: "AAAA-MM-DDTHH:MM:SS.mmm"
systemidID de sistema
componentAssinatura de componente (por exemplo, '4SQLS' ou 'dbmg')
process_info_indexCorresponde ao campo "índice" de histórico 4DRequestsLog_ProcessInfo.txt log, e permite vincular uma solicitação a um processo.
requestSolicita ID em C/S ou string de mensagens para petições SQL ou mensagens LOG EVENT
bytes_inNúmero de bytes recebidos
bytes_outNúmero de bytes enviados
server_duration | exec_duration Depende de onde o log é gerado:
  • server_duration quando gerado no cliente --Tempo em microssegundos para o servidor processar a petição e retonar a resposta. B até F na imagem abaixo,
    OU,
  • exec_duration quando gerado no servidor --Tempo em microssegundos para o servidor processar a petição. B até E na imagem abaixo.
write_durationTempo em microssegundos para enviar :
  • Petição (quando executado no cliente). A até B na imagem abaixo.
  • Responsta (quando rodar no servidor). E até F na imagem abaixo.
task_kindPreemptivo ou cooperativo (respectivamente 'p' ou 'c')
rttTempo estimado em microssegundos até o cliente enviar a petição e o servidor reconhecê-la. A até D e E até H na imagem abaixo.
  • Apenas mede quando usar a capa de rede ServerNet , retorna 0 quando usado com a capa de rede legado.
  • Para versões Windows anteriores a Windows 10 ou Windows Server 2016, a chamada retorna 0.

Fluxo da petição:

 

Este arquivo de log grava informações em  cada processo criado numa ´máquina 4D Server ou máquina 4D Remote que execute o comando (excluindo Web requests).

Como iniciar este  log:

  • no servidor:
     SET DATABASE PARAMETER(4D Server log recording;1) //lado servidor
  • no cliente:
     SET DATABASE PARAMETER(Client Log Recording;1) //lado remoto

Nota: esta declaração também inicia o arquivo de log 4DRequestsLog.txt  (ver acima).

Cabeçalho

Este arquivo inicia com os cabeçalhos abaixo:

  • Identificador de sessão Log
  • Nome do host do servidor que é o host da aplicação
  • Nome de login do usuário: login no OS do usuário que roda a aplicação  4D  no servidor.

Conteúdos

Para cada processo, os campos abaixos são logados:

Nome do campoDescrição
sequence_numberNúmero único e sequencial de operação na sessão de login
timeData e hora usando formato ISO 8601: "AAAA-MM-DDTHH:MM:SS.mmm"
indexNúmero único e sequencial de processo
CDB4DBaseContextDB4D componente contexto de banco de dados UUID
VTaskID ID de tarefa interna
server_process_idProcesso ID em Server
remote_process_idProcesso ID em Cliente
process_namenome Processo
cIDIdentificador de 4D Conexão
uIDIdentificador de 4D Cliente
IPEndereço Cliente IPv4
host_nameClient hostname
user_nameNome de usuário de login  on client
connection_uuidUUID identificador de processo de conexão (em conexão com o mesmo número em )

Este arquivo de histórico registra cada solicitude HTTP e cada resposta em modo raw. A totalidade das petições, incluidos os cabeçalhos são registrados; Opcionalmente, podem ser registrados também as partes de corpo.

Como iniciar este registro:

 WEB SET OPTION(Web debug log;wdl enable without body//outros valores estão disponíveis

Os seguintes campos são registrados para as petições e as respostas:

Nome de campoDescrição
SocketIDID del socket utilizado para a comunicação
PeerIPDireção IPv4 del host (cliente)
PeerPortPorto utilizado pelo host (cliente)
TimeStampTimestamp em milissegundos (desde o início de sistema)
ConnectionIDUUID da conexão (UUID de VTCPSocket utilizado para a comunicação)
SequenceNumberNúmero de operação sequêncial e único na sessão de históricol

Este arquivo de histórico registra cada evento que ocorre a nivel da linguagem de 4D. O modo padrão oferece uma vista básica dos eventos.

Como iniciar este arquivo de histórico:

 SET DATABASE PARAMETER(Debug Log Recording;2) //padrão, todos os processos
 SET DATABASE PARAMETER(Current process debug log recording;2) //padrão, apenas processo atual

Os campos abaixos são registrados para cada evento:  

Coluna #Descrição
1Número de operação sequêncial e único na sessão de histórico
2Data e hora em formato ISO 8601  (AAAA-MM-DDThh:mm:ss.mmm)
3ID processo (p=xx) e ID único de processo (puid=xx)
4Nivel de pilha
5Pode ser Nome de comando/Nome de método/Mensagem/Info Task Start Stop /Nome de Plugin, evento ou retrochamada/UUID da conexão
6Tempo necessário para a operação no histórico em milissegundos (diferente da segunda coluna)

Este arquivo de histórico registra cada evento gerado a nível de linguagem de 4D em um formato tabulado e compacto que inclui informação adicional (em comparação com o formato padrão).

Como iniciar este arquivo de histórico:

 SET DATABASE PARAMETER(Debug Log Recording;2+4) //formato tabular estendido, todos os processos
 SET DATABASE PARAMETER(Current process debug log recording;2+4) //estendido, apenas o processo atual

Os campos abaixos são registrados para cada evento:

Coluna #Descrição
1Número de operação sequêncial e único na sessão de histórico
2Data e hora em formato ISO 8601 format (AAAA-MM-DDThh:mm:ss.mmm)
3ID de processo
4ID único de processo
5Nivel de pilha
6Pode representar (dependendo de tipo de entrada registrada na oitava coluna):
  • um ID de comando da linguagem (quando o tipo=1)
  • um nome de método (quando o tipo=2)
  • uma combinação de pluginIndex;pluginCommand (quando o tipo=4, 5, 6 ou 7). Pode conter algo como '3;2'
  • um UUID de processo de conexão (quando o tipo=8)
  • ou pode conter 'starting sequence number' ao fechar um nível de pilha (isto deveria corresponder ao número de sequência de início da ação atual)
  • 121  15:16:50:777  5  8  0  CallMethod  2  0
    122  15:16:50:777  5  8  1  283  1  0
    123  15:16:50:777  5  8  1  122  -1  0  3
    124  15:16:50:777  5  8  0  121  -2  0  61
    Aqui na última linha (124), o valor da sexta coluna '121' corresponde ao número de sequência da primeira linha (nivel de pilha 0). Na linha superior (123), o valor da sexta coluna '122' corresponde ao número de sequência da línha superior (nivel de pilha 1), etc.
    7Parâmetros passados ​​aos comandos, métodos ou plugins
    8Tipo de operação de histórico. Este valor pode ser um valor absoluto:
    1: Comando
    2: Método
    3: Mensagem (enviado pelo comando LOG EVENT unicamente)
    4: PluginMessage
    5: PluginEvent
    6: PluginCommand
    7: PluginCallback
    8: Task
    Quando um valor for negativo, só significa que é a contraparte de fechamento de nivel da pilha (ver a coluna 8 nas linhas 123 e 124 no registro acima).
    9Evento formulario se houver; Vazio em outros casos (suponha que a coluna seja utiliza quando o código for executado em um método formulário ou script)
    10Tempo transcorrido em micro segundos da ação registrada atual; Só para os niveis de fechamento de pilha (ver a coluna 10 nas linhas 123 e 124 no histórico acima)

    Este arquivo de histórico registra muitos eventos relacionados à operação interna da aplicação e é adequado para leitura humana. Pode incluir informação personalizada nesse arquivo usando o comando LOG EVENT.

    Para iniciar esse histórico:

     SET DATABASE PARAMETER(Diagnostic log recording;1) //iniciar gravação

    Os campos abaixo são registrados para cada evento:

    Nome camposDescrição
    sequenceNumberNúmero de operação único e sequencial na sessão de login
    timestampData e hora em formato ISO 8601  (AAAA-MM-DDThh:mm:ss.mmm)
    loggerIDOpcional
    componentSignatureOpcional - assinatura interna do componente
    messageLevelInformação, Aviso, Erro
    messageDescrição da entrada de log

    Dependendo do evento, vários outros campos podem ser logados, tais como task, socket, etc. 

    Estes arquivos de histórico registram cada troca entre a aplicação 4D e o servidor de mail (SMTP, POP3, IMAP) que tenha sido iniciada pelos comandos abaixo:

    SMTP -  SMTP New transporter
    POP3 -  POP3 New transporter
    IMAP  -  IMAP New transporter   
    Os arquivos histórico podem ser produzidos em duas versões:

    • uma versão regular:
      • chamada 4DSMTPLog.txt, 4DPOP3Log.txt, ou 4DIMAPLog.txt
      • sem anexos
      • usa um arquivo automático circular reciclável a cada  10 MB
      • feito para depuração comum

    Para iniciar esse log:

     

    •  SET DATABASE PARAMETER(SMTP Log;1) //inicia SMTP log OR
       </span>SET DATABASE PARAMETER(POP3 Log;1) //inicia POP3 log OR
       SET DATABASE PARAMETER(IMAP Log;1) //inicia IMAP log
       
    • 4D Server: Clique nos botões on the Start Request e Debug Logs em Página Manutenção da janela de administração do 4D Server.
      A rota do histórico é retornada pelo comando Get 4D file.

     

    uma versão extendida:
    anexos incluidos
    sem reciclamento automático
    nome personalizado
    reservado para propósitos específicos

    Para iniciar esse histórico:

     $server:=New object</p><p>...</p><p><span style="font-size: 13px;"> //SMTP
     </span>$server.logFile:="MySMTPAuthLog.txt"
     $transporter:=SMTP New transporter($server)</p><p><span style="font-size: 13px;">&NBSP;</span></p><p><span style="font-size: 13px;"> // POP3
     </span>$server.logFile:="MyPOP3AuthLog.txt"
     $transporter:=POP3 New transporter($server)</p><p><span style="font-size: 13px;">&NBSP;</span></p><p><span style="font-size: 13px;"> //IMAP
     </span>$server.logFile:="MyIMAPAuthLog.txt"
     $transporter:=IMAP New transporter($server)

     

    Conteúdos

    Para cada petição, os campos abaixo são guardados:

    Coluna #Descrição
    1Número de operação único e sequencial na sessão de histórico
    2Data e hora no formato RFC3339 (aaaa-mm-ddThh:mm:ss.ms)
    3ID de processo 4D
    4ID única de processo
    5
    • informação de início de sessão IMAP, incluindo nome de servidor host, número porta TCP usada para conectar ao servidor IMAP e o estado TLS,
      ou
    • troca de dados entre servidor e cliente, iniciando com  "S <" (dados recebidos do servidor IMAP) ou "C >" (dados enviados pelo cliente IMAP): lista modo autenticação enviado pelo servidor e modo de autenticação selecionado, qualquer erro relatadop elo servidor IMAP, informação de cabeçalho  de emails enviados (versão padrão apenas) e se o email foi salvo no servidor,
      ou
    • informação de fechamento da sessão IMAP .

     

    Este histórico registra cada petição ORDA enviada de uma máquina remota. Pode enviar à memória ou a um arquivo em disco. O nome e localização deste arquivo de log são sua escolha.

    Como iniciar este log:

      //para ser executado em uma máquina remota
     ds.startRequestLog(File("/LOGS/ordaLog.txt")) //pode ser enviada para a memória

    Nota: Se quiser usar a sequencia númerica única no  histórico de petições ORDA precisa ativá-la:

      //para ser executado em uma máquina remota
     SET DATABASE PARAMETER(Client Log Recording;1) //ativa o histórico de sequência numérica
     ds.startRequestLog(File("/LOGS/ordaLog.txt")) //pode também ser enviado para memória
     SET DATABASE PARAMETER(Client Log Recording;0) //desativa a sequência numérica

    Os campos abaixo são gravados para cada petição:

    Nome campoDescriçãoExemplo
    sequenceNumberNúmero de sequencia única e operacional na sessão de histórico104
    urlCliente ORDA petição de URL"rest/Persons(30001)"
    startTimeData e hora início usando formato  ISO 8601 "2019-05-28T08:25:12.346Z"
    endTimeData e hora final usando formato ISO 8601 "2019-05-28T08:25:12.371Z"
    durationDuração processamento do Cliente (ms)25
    responseObjeto resposta Servidor{"status":200,"body":{"__entityModel":"Persons",[...]

     
    PROPRIEDADES 

    Produto: 4D
    Tema: Debug log files

     
    CONTEÚDO DA PÁGINA 
     
    HISTÓRIA 

    New
    Modificado: 4D v17 R5
    Modificado: 4D v17 R6
    Modificado: 4D v18 R2
    Modificado: 4D v18 R3
    Modificado: 4D v19

     
    ARTICLE USAGE

    Manual de Desenho 4D ( 4D v19)