4D v18

Descripción de archivos de historial

Inicio

 
4D v18
Descripción de archivos de historial

Descripción de archivos de historial  


 

 

Las aplicaciones 4D pueden generar varios archivos de historial que son útiles para depurar u optimizar su ejecución. Los registros se suelen iniciar o detener utilizando los selectores de los comandos SET DATABASE PARAMETER o WEB SET OPTION y se almacenan en la carpeta Logs de la base (ver la sección Descripción de los archivos de 4D).

La información registrada necesita ser analizada para detectar y solucionar problemas. Este anexo ofrece una descripción completa de los siguientes archivos de historial:

  • 4DRequestsLog.txt
  • 4DRequestsLog_ProcessInfo.txt
  • HTTPDebugLog.txt
  • 4DDebugLog.txt
  • 4DSMTPLog.txt
  • Registro de peticiones clientes ORDA

Estos archivos de historial comparten algunos campos para que pueda establecer una cronología y establecer conexiones entre entradas durante la depuración:

  • sequence_number: este número es único en todos los archivos de historial de depuración y se incrementa para cada nueva entrada, independientemente del archivo de historial, para que pueda conocer la secuencia exacta de las operaciones.
  • connection_uuid: para cada proceso 4D creado en un cliente 4D que se conecta a un servidor, este UUID de conexión se registra tanto en el servidor como en el cliente. Le permite identificar fácilmente el cliente remoto que lanzó cada proceso.

Este archivo de historial registra las búsquedas estándar realizadas por la máquina 4D Server o la máquina remota 4D que ejecutó el comando (excluyendo las búsquedas Web).

Cómo iniciar este historial:

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

Nota: esta instrucción también inicia el archivo de historial 4DRequestsLog_ProcessInfo.txt (ver abajo).

Encabezados

Este archivo comienza con los siguientes encabezados:

  • Identificador de sesión de historial
  • Nombre de host del servidor que aloja la aplicación
  • Nombre de inicio de sesión de usuario: inicia sesión en el sistema operativo del usuario que ejecutó la aplicación 4D en el servidor.        

Contenido

Para cada petición, se registran los siguientes campos:

Nombre de campoDescripción
sequence_numberNúmero de operación único y secuencial en la sesión de registro
timeFecha y hora usando el formato ISO 8601: 'YYYY-MM-DDTHH:MM:SS.sss'
systemidSystem ID
componentFirma de componente (por ejemplo, '4SQLS' o 'dbmg')
process_info_indexCorresponde al campo "índice" del historial 4DRequestsLog_ProcessInfo.txt log, y permite vincular una solicitud a un proceso.
requestSolicita ID en C/S o cadena de mensajes para peticiones SQL o mensajes LOG EVENT
bytes_inNúmero de bytes recibidos
bytes_outNúmero de bytes enviados
server_duration | exec_duration Depende de dónde se genere el historial:
  • cuando se genera en el cliente - Tiempo tomado en microsegundos para que el servidor procese la solicitud y devuelva una respuesta. De B ​​a F en la imagen a continuación,
    OR,
  • exec_duration cuando se genera en el servidor: el tiempo se toma en microsegundos para que el servidor procese la solicitud. B a E en la imagen a continuación.
write_durationTiempo tomado en milisegundos para enviar la petición:
  • Request (cuando se ejecuta en el cliente). A a B en imagen abajo.
  • Respuesta (cuando se ejecuta en el servidor). E a F en imagen abajo.
task_kindApropiativo o cooperativo (respectivamente 'p' o 'c')
rttTiempo estimado en microsegundos para que el cliente envíe la solicitud y el servidor la reconozca. A a D y E a H en la imagen a continuación.
  • Solo se mide cuando se utiliza la capa de red ServerNet, devuelve 0 cuando se utiliza con la capa de red heredada.
  • Para versiones de Windows anteriores a Windows 10 o Windows Server 2016, la llamada devolverá 0.

Flujo de petición:

 

Este archivo de historial registra la información sobre cada proceso creado en la máquina 4D Server o la máquina 4D remota que ejecutó el comando (excluyendo las solicitudes Web).

Cómo iniciar este archivo de historial:

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

Nota: esta instrucción también inicia el archivo de historial 4DRequestsLog.txt (ver arriba).

Encabezados
Este archivo comienza con los siguientes encabezados:

  • Log Session Identifier (Identificador de sesión de historial)
  • Nombre del servidor que aloja la aplicación
  • User Login Name: nombre del usuario (definido en el SO) que ejecuta la aplicación 4D en el servidor.  

Contenido del archivo

Para cada proceso, los siguientes campos se registran:

Nombre del campoDescripción
sequence_numberNúmero de operación secuencial y único en la sesión de historial
timeFecha y hora utilizando el formato ISO 8601 "YYYY-MN-DDTHH:MM:SS.sss"
process_info_indexNúmero de proceso secuencial y único
CDB4DBaseContextUUID del contexto de base del componente DB4D
systemidID sistema
server_process_idID del proceso en el servido
remote_process_idID del proceso en el cliente
process_nameNombre del proceso
cIDIdentificado de la conexión 4D
uIDIdentificado del cliente 4D
IPDirección IPv4/IP v6 del cliente
host_nameNombre del host del cliente
user_nameNombre de conexión de usuario en el cliente
connection_uuidIdentificador UUID de proceso de conexión
server_process_unique_idID único del proceso en el servidor

Este archivo de historial registra cada solicitud HTTP y cada respuesta en modo crudo. La totalidad de las peticiones, incluidos los encabezados, se registran; Opcionalmente, se pueden registrar también las partes del cuerpo.

Cómo iniciar este registro:

 WEB SET OPTION(Web debug log;wdl enable without body//otros valores están disponibles

Los siguientes campos se registran para las peticiones y las respuestas:

Nombre del campoDescripción
SocketIDID del socket utilizado para la comunicación
PeerIPDirección IPv4 del host (cliente)
PeerPortPuerto utilizado por el host (cliente)
TimeStampTimestamp en milisegundos (desde el inicio del sistema)
ConnectionIDUUID de la conexión (UUID de VTCPSocket utilizado para la comunicación)
SequenceNumberNúmero de operación secuencial y único en la sesión de historial

Este archivo de historial registra cada evento que ocurre al nivel del lenguaje de 4D. El modo estándar ofrece una vista básica de los eventos.

Cómo iniciar este archivo de historial:

 SET DATABASE PARAMETER(Debug Log Recording;2) //estándar, todos los procesos
 SET DATABASE PARAMETER(Current process debug log recording;2) //estándar, proceso actual únicamente

Los siguientes campos se registran para cada evento: 

Columna #Descripción
1Número de operación secuencial y único en la sesión de historial
2Tiempo transcurrido en milisegundos desde el inicio del archivo de historial
3ID proceso (p=xx) e ID único del proceso (puid=xx)
4Nivel de pila
5Puede ser Nombre de comando/Nombre de método/Mensaje/Info Task Start Stop /Nombre del Plugin, evento o retrollamada/UUID de la conexión
6Tiempo necesario para la operación en el historial en milisegundos (diferente de la segunda columna)

Este archivo de historial registra cada evento generado a nivel del lenguaje de 4D en un formato tabulado y compacto que incluye información adicional (en comparación con el formato estándar).

Cómo iniciar este archivo de historial:

 SET DATABASE PARAMETER(Debug Log Recording;2+4) //formato tabular extendido, todos los procesos
 SET DATABASE PARAMETER(Current process debug log recording;2+4) //extendido, proceso actual únicamente

Los siguientes campos se registran para cada evento:

Columna #Descripción
1Número de operación secuencial y único en la sesión de historial
2Tiempo transcurrido desde el inicio del archivo de historial en el formato "hh:mm:ss:ms" (puede ser precedido por un contador de días, por ejemplo, si el registro se inició hace 3 días "3+11:58:23:163")
3ID del proceso
4ID único del proceso
5Nivel de pila
6Puede representar (dependiendo de tipo de entrada registrada en la octava columna):
  • un ID de comando del lenguaje (cuando el tipo=1)
  • un nombre de método (cuando el tipo=2)
  • una combinación de pluginIndex;pluginCommand (cuando el tipo=4, 5, 6 o 7). Puede contener algo como '3;2'
  • un UUID de proceso de conexión (cuando el tipo=8)
  • o puede contener 'starting sequence number' al cerrar un nivel de pila (esto debería corresponder al número de secuencia del inicio de la acción actual)
  • 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
    Aquí en la última línea (124), el valor de la sexta columna '121' corresponde al número de secuencia de la primera línea (nivel de pila 0). En la línea superior (123), el valor de la sexta columna '122' corresponde al número de secuencia de la línea superior (nivel de pila 1), etc.
    7Parámetros pasados ​​a los comandos, métodos o plugins
    8Tipo de operación de historial. Este valor puede ser un valor absoluto:
    1: Comando
    2: Método
    3: Mensaje (enviado por el comando LOG EVENT únicamente)
    4: PluginMessage
    5: PluginEvent
    6: PluginCommand
    7: PluginCallback
    8: Task
    Cuando un valor es negativo, sólo significa que es la contraparte de cierre del nivel de la pila (ver la columna 8 en las líneas 123 Y 124 en el registro arriba).
    9Evento formulario si lo hay; Vacío en otros casos (suponga que la columna se utiliza cuando el código se ejecuta en un método formulario o script)
    10Tiempo transcurrido en micro segundos de la acción registrada actual; Sólo para los niveles de cierre de pila (ver la columna 10 en las líneas 123 y 124 en el historial arriba)

    Este archivo de historial registra cada intercambio entre la aplicación 4D y el servidor SMTP. El archivo puede ser producido en dos versiones:

    • una versión regular: llamada 4DSMTPLog.txt, sin archivos adjuntos, utiliza un reciclaje circular automático de archivos cada 10 MB; destinado a la depuración habitual.
      Para iniciar este historial:
      •  SET DATABASE PARAMETER(SMTP Log;1) //iniciar el registro smtp
      • 4D Server: haga clic en el botón Iniciar petición y depurar registros en Página Mantenimiento de la ventana de administración de 4D Server.
      Esta ruta de acceso de historial es devuelta por el comando Get 4D file.
    • una versión extendida: archivos adjuntos incluidos, sin reciclaje automático; Reservado para fines específicos.
      Para iniciar este historial:
       $server:=New object
       ...$server.logFile:="MySMTPAuthLog.txt"
       $transporter:=SMTP New transporter($server)

    Contenido

    Para cada petición, se registran los siguientes campos:

    Columna #Descripción
    1Número de operación único y secuencial en la sesión de registro
    2Fecha y hora en formato RFC3339 (aaaa-mm-ddThh:mm:sss)
    3ID del proceso
    4ID de proceso único
    5
    • Información de inicio de sesión SMTP, incluido el nombre del servidor local, el número de puerto TCP utilizado para conectarse al servidor SMTP y el estado TLS,
      or
    • datos intercambiados entre el servidor y el cliente, comenzando con "S <" (datos recibidos desde el servidor SMTP) o "C >" (datos enviados por el cliente SMTP): lista de modos de autenticación enviada por el servidor y modo de autenticación seleccionado, todo error reportado por el servidor SMTP, la información del encabezado del correo enviado (solo versión estándar) y si el correo está guardado en el servidor,
      or
    • información MIME de todos los correos enviados* (solo versión extendida),
      or
    • información de cierre de sesión SMTP.

    *Advertencia: los contenidos MIME (archivos adjuntos) pueden representar una gran cantidad de datos. Asegúrese de tener suficiente espacio en el disco para guardar estos datos.

    Este registro registra cada solicitud ORDA enviada desde una máquina remota. Puede enviarlo a la memoria o a un archivo en el disco. El nombre y la ubicación de este archivo de registro son su elección.

    Cómo iniciar este registro:

      //para ser ejecutado en una máquina remota
     ds.startRequestLog(File("/LOGS/ordaLog.txt")) //también se puede enviar a la memoria

    Nota: si desea utilizar el número de secuencia único en el registro de solicitud de ORDA, debe activarlo:

      //para ser ejecutado en una máquina remota
     SET DATABASE PARAMETER(Client Log Recording;1) //para habilitar el número de secuencia de registro
     ds.startRequestLog(File("/LOGS/ordaLog.txt")) //también se puede enviar a la memoria
     SET DATABASE PARAMETER(Client Log Recording;0) //deshabilitar el número de secuencia

    Los siguientes campos se registran para cada petición:

    Nombre del campoDescripciónEjemplo
    sequenceNumberNúmero de operación único y secuencial en la sesión de registro104
    urlURL de petición ORDA del cliente"rest/Persons(30001)"
    startTimeFecha y hora de inicio con el formato ISO 8601"2019-05-28T08:25:12.346Z"
    endTimeFecha y hora de finalización utilizando el formato ISO 8601"2019-05-28T08:25:12.371Z"
    durationDuración de procesamiento del cliente (ms)25
    responseObjeto de respuesta del servidor{"status":200,"body":{"__entityModel":"Persons",[...]

     
    PROPIEDADES 

    Producto: 4D
    Tema: Archivos de depuración

     
    CONTENIDO DE LA PÁGINA 
     
    HISTORIA 

    Modificado: 4D v17 R5
    Modificado: 4D v17 R6

     
    ARTICLE USAGE

    Manual de Diseño ( 4D v18)