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
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 registros 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 todo 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 inició 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:
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 campo | Descripción |
sequence_number | Número de operación único y secuencial en la sesión de registro |
time | Fecha y hora usando el formato 'MM/DD/AA, HH:MM:SS' |
task_id | ID de tarea interno |
component | Firma de componente (por ejemplo, '4SQLS' o 'dbmg') |
process_info_index | Corresponde al campo "índice" del historial 4DRequestsLog_ProcessInfo.txt log, y permite vincular una solicitud a un proceso. |
request | Solicita ID en C/S o cadena de mensajes para peticiones SQL o mensajes LOG EVENT |
bytes_in | Número de bytes recibidos |
bytes_out | Número de bytes enviados |
duration | Tiempo tomado en milisegundos para realizar la acción |
task_kind | Apropiativo o cooperativo (respectivamente 'p' o 'c') |
connection_uuid | Identificador UUID de 4D Client, SQL o Conexión HTTP (en relación con el mismo número en 4DRequestsLog_ProcessInfo.txt) |
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:
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 campo | Descripción |
sequence_number | Número de operación secuencial y único en la sesión de historial |
time | Fecha y hora utilizando el formato "MM/DD/AA, HH:MM:SS" |
index | Número de proceso secuencial y único |
CDB4DBaseContext | UUID del contexto de base del componente DB4D |
VTaskID | ID de tarea interna |
server_process_id | ID del proceso en el servido |
remote_process_id | ID del proceso en el cliente |
process_name | Nombre del proceso |
cID | Identificado de la conexión 4D |
uID | Identificado del cliente 4D |
IP | Dirección IPv4 del cliente |
host_name | Nombre del host del cliente |
user_name | Nombre de conexión de usuario en el cliente |
connection_uuid | Identificador UUID de conexión cliente 4D, SQL o HTTP (en relación con el mismo número en 4DRequestsLog.txt) |
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:
Los siguientes campos se registran para las peticiones y las respuestas:
Nombre del campo | Descripción |
SocketID | ID del socket utilizado para la comunicación |
PeerIP | Dirección IPv4 del host (cliente) |
PeerPort | Puerto utilizado por el host (cliente) |
TimeStamp | Timestamp en milisegundos (desde el inicio del sistema) |
ConnectionID | UUID de la conexión (UUID de VTCPSocket utilizado para la comunicación) |
SequenceNumber | Nú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:
Los siguientes campos se registran para cada evento:
Columna # | Descripción |
1 | Número de operación secuencial y único en la sesión de historial |
2 | Tiempo transcurrido en milisegundos desde el inicio del archivo de historial |
3 | ID proceso (p=xx) e ID único del proceso (puid=xx) |
4 | Nivel de pila |
5 | Puede ser Nombre de comando/Nombre de método/Mensaje/Info Task Start Stop /Nombre del Plugin, evento o retrollamada/UUID de la conexión |
6 | Tiempo 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:
Los siguientes campos se registran para cada evento:
Columna # | Descripción |
1 | Número de operación secuencial y único en la sesión de historial |
2 | Tiempo 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") |
3 | ID del proceso |
4 | ID único del proceso |
5 | Nivel de pila |
6 | Puede 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. |
7 | Parámetros pasados a los comandos, métodos o plugins |
8 | Tipo 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). |
9 | Evento 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) |
10 | Tiempo 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) |