Sistema de registro
Este documento explica cómo utilizar la función de registro de LibreChat, la cual guarda los registros de errores y depuración en la carpeta `/api/logs`. Puede utilizar estos registros para solucionar problemas, monitorear su servidor e informar errores. También puede desactivar los registros de depuración si desea ahorrar espacio.
General
LibreChat tiene un registro centralizado integrado en su backend (api).
- Con la instalación de Docker, los archivos de registro se guardan en
/logs
- Con la instalación de npm, los archivos de registro se guardan en
/api/logs
Los registros de error se guardan de forma predeterminada. Los registros de depuración están habilitados de forma predeterminada, pero pueden desactivarse si no se desean.
Esto le permite monitorear su servidor a través de herramientas externas que inspeccionan archivos de registro, como la pila ELK.
Los registros de depuración son esenciales para el trabajo de desarrollo y la corrección de problemas. Si encuentra algún inconveniente al ejecutar LibreChat, reprodúzcalo lo más fielmente posible y reporte el problema incluyendo sus registros encontrados en ./api/logs/debug-%DATE%.log.
Los registros de errores también se guardan en la misma ubicación: ./api/logs/error-%DATE%.log. Si tiene configurado meilisearch, también existe un archivo de registro independiente para esto.
Nota:
Nota: Los registros se rotan cada 14 días, por lo que generará un archivo de registro de errores, un archivo de registro de depuración y un archivo de registro meiliSync cada 14 días. Los errores también estarán presentes en los archivos de registro de depuración, pero los archivos de registro de errores proporcionan seguimientos de pila y más detalles.
Configuración
- Alterna los registros de depuración con la siguiente variable de entorno. De forma predeterminada, incluso si nunca configuras esta variable, se generarán registros de depuración, pero tienes la opción de desactivarlos configurándola en
FALSE.
| Key | Type | Description | Example |
|---|---|---|---|
| DEBUG_LOGGING | boolean | Mantener activos los registros de depuración. | DEBUG_LOGGING=true |
Nota: se recomienda desactivar los registros de depuración (debug logs) en un entorno de producción.
- Para obtener una salida detallada del servidor en la consola/terminal, puede establecer lo siguiente en
TRUE:
| Key | Type | Description | Example |
|---|---|---|---|
| DEBUG_CONSOLE | boolean | Habilitar registros detallados de consola/stdout en el mismo formato que los registros de depuración de archivos. | DEBUG_CONSOLE=false |
Sin embargo, esto no se recomienda, ya que los resultados pueden ser bastante extensos. Está desactivado de forma predeterminada y debe habilitarse con moderación.
- Al gestionar registros de consola en implementaciones en la nube (como GCP o AWS), habilitar esto volcará los registros con una marca de tiempo UTC y los formateará como JSON.
| Key | Type | Description | Example |
|---|---|---|---|
| CONSOLE_JSON | boolean | Habilitar registros de consola/stdout en formato JSON detallado, adecuados para implementaciones en la nube como GCP/AWS. | CONSOLE_JSON=false |
De forma predeterminada, la longitud de la cadena JSON se trunca a 255 caracteres. Puede configurar esto con la siguiente variable de entorno:
| Key | Type | Description | Example |
|---|---|---|---|
| CONSOLE_JSON_STRING_LENGTH | number | Configure el tamaño de truncamiento para los valores de cadena en los registros de consola/stdout de JSON. Predeterminado: 255. | # CONSOLE_JSON_STRING_LENGTH=255 |
- Los transportes de registro respaldados por archivos están habilitados de forma predeterminada. Establezca
LOG_TO_FILE=falsesi su despliegue solo debe emitir registros a stdout/stderr.
| Key | Type | Description | Example |
|---|---|---|---|
| LOG_TO_FILE | boolean | Establecer en false para deshabilitar los transportes de Winston respaldados por archivos. | LOG_TO_FILE=true |
Rastreo de OpenTelemetry
LibreChat puede emitir trazas de OpenTelemetry de backend para la visibilidad del servidor, la base de datos, Redis y HTTP saliente. Los spans a nivel de comando de Redis son opcionales, por lo que las trazas predeterminadas se mantienen a alto nivel. Esto es independiente de Langfuse, que sigue siendo la opción recomendada para la observabilidad de modelos y prompts específicos de GenAI.
| Key | Type | Description | Example |
|---|---|---|---|
| OTEL_TRACING_ENABLED | boolean | Habilitar el rastreo de OpenTelemetry en el backend. | # OTEL_TRACING_ENABLED=false |
| OTEL_SERVICE_NAME | string | Nombre del servicio reportado a OpenTelemetry. Predeterminado: librechat. | # OTEL_SERVICE_NAME=librechat |
| OTEL_SERVICE_VERSION | string | Versión del servicio reportada a OpenTelemetry. | # OTEL_SERVICE_VERSION= |
| OTEL_EXPORTER_OTLP_ENDPOINT | string | Endpoint base del exportador OTLP. | # OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318 |
| OTEL_EXPORTER_OTLP_TRACES_ENDPOINT | string | Endpoint OTLP específico para trazas. | # OTEL_EXPORTER_OTLP_TRACES_ENDPOINT= |
| OTEL_EXPORTER_OTLP_HEADERS | string | Cabeceras del exportador OTLP. | # OTEL_EXPORTER_OTLP_HEADERS= |
| OTEL_TRACES_EXPORTER | string | Selección del exportador de trazas. | # OTEL_TRACES_EXPORTER=otlp |
| OTEL_TRACES_SAMPLER | string | Muestreador de trazas de OpenTelemetry. | # OTEL_TRACES_SAMPLER=parentbased_always_on |
| OTEL_LOG_LEVEL | string | Nivel de registro del SDK de OpenTelemetry. | # OTEL_LOG_LEVEL=INFO |
| OTEL_SDK_DISABLED | boolean | Deshabilitar el SDK de OpenTelemetry incluso cuando el rastreo está activado. | # OTEL_SDK_DISABLED=false |
| OTEL_IOREDIS_TRACING_ENABLED | boolean | Habilitar los spans a nivel de comando de Redis. Deshabilitado por defecto para mantener los seguimientos del backend en un nivel alto. | # OTEL_IOREDIS_TRACING_ENABLED=false |
¿Qué te parece esta guía?