Skip to main content
LibreChat is joining ClickHouse to power the open-source Agentic Data Stack 🎉 Learn more
LibreChat

Sistema de Logs

Este documento explica como usar o recurso de log do LibreChat, que salva logs de erro e depuração na pasta `/api/logs`. Você pode usar esses logs para solucionar problemas, monitorar seu servidor e relatar bugs. Você também pode desativar os logs de depuração se quiser economizar espaço.

Geral

O LibreChat possui um sistema de log centralizado integrado ao seu backend (api).

  • Com a instalação Docker, os arquivos de log são salvos em /logs
debug-2024-01-01.log
error-2024-01-01.log
meiliSync-2024-01-01.log
  • Com a instalação via npm, os arquivos de log são salvos em /api/logs
debug-2024-01-01.log
error-2024-01-01.log
meiliSync-2024-01-01.log

Os logs de erro são salvos por padrão. Os logs de depuração são habilitados por padrão, mas podem ser desativados se não forem desejados.

Isso permite que você monitore seu servidor por meio de ferramentas externas que inspecionam arquivos de log, como o ELK stack.

Logs de depuração são essenciais para o trabalho de desenvolvimento e para a correção de problemas. Se você encontrar qualquer problema ao executar o LibreChat, reproduza-o o mais próximo possível e relate o problema com seus logs encontrados em ./api/logs/debug-%DATE%.log.

Os logs de erros também são salvos no mesmo local: ./api/logs/error-%DATE%.log. Se você tiver o meilisearch configurado, há um arquivo de log separado para isso também.

Nota:

Nota: Os logs são rotacionados a cada 14 dias, portanto, você gerará um arquivo de log de erro, um arquivo de log de depuração e um arquivo de log meiliSync a cada 14 dias. Os erros também estarão presentes nos arquivos de log de depuração, mas os arquivos de log de erro fornecem rastreamentos de pilha (stack traces) e mais detalhes.

Configuração

  • Alterne os logs de depuração com a seguinte variável de ambiente. Por padrão, mesmo que você nunca defina esta variável, os logs de depuração serão gerados, mas você tem a opção de desativá-los definindo-a como FALSE.
KeyTypeDescriptionExample
DEBUG_LOGGINGbooleanManter logs de depuração ativos.DEBUG_LOGGING=true

Nota: é recomendado desativar os logs de depuração em um ambiente de produção.

  • Para uma saída detalhada do servidor no console/terminal, você pode definir o seguinte como TRUE:
KeyTypeDescriptionExample
DEBUG_CONSOLEbooleanHabilitar logs detalhados no console/stdout no mesmo formato dos logs de depuração de arquivo.DEBUG_CONSOLE=false

Isso não é recomendado, no entanto, pois as saídas podem ser bastante verbosas. Está desativado por padrão e deve ser habilitado com moderação.

  • Ao lidar com logs de console em implantações na nuvem (como GCP ou AWS), habilitar isso fará o dump dos logs com um carimbo de data/hora UTC e os formatará como JSON.
KeyTypeDescriptionExample
CONSOLE_JSONbooleanHabilite logs de console/stdout JSON detalhados, adequados para implantações em nuvem como GCP/AWS.CONSOLE_JSON=false

Por padrão, o comprimento da string JSON é truncado para 255 caracteres. Você pode configurar isso com a seguinte variável de ambiente:

KeyTypeDescriptionExample
CONSOLE_JSON_STRING_LENGTHnumberConfigure o tamanho de truncamento para valores de string nos logs do console/stdout em JSON. Padrão: 255.# CONSOLE_JSON_STRING_LENGTH=255
  • Os transportes de log baseados em arquivo estão habilitados por padrão. Defina LOG_TO_FILE=false se a sua implantação deve emitir logs apenas para stdout/stderr.
KeyTypeDescriptionExample
LOG_TO_FILEbooleanDefina como false para desativar os transportes Winston baseados em arquivo.LOG_TO_FILE=true

Rastreamento OpenTelemetry

O LibreChat pode emitir traces de OpenTelemetry do backend para visibilidade de servidor, banco de dados, Redis e HTTP de saída. Os spans em nível de comando do Redis são opcionais, para que os traces padrão permaneçam em alto nível. Isso é separado do Langfuse, que continua sendo a opção recomendada para observabilidade de prompts e modelos específicos de GenAI.

KeyTypeDescriptionExample
OTEL_TRACING_ENABLEDbooleanHabilitar rastreamento OpenTelemetry no backend.# OTEL_TRACING_ENABLED=false
OTEL_SERVICE_NAMEstringNome do serviço reportado ao OpenTelemetry. Padrão: librechat.# OTEL_SERVICE_NAME=librechat
OTEL_SERVICE_VERSIONstringVersão do serviço reportada ao OpenTelemetry.# OTEL_SERVICE_VERSION=
OTEL_EXPORTER_OTLP_ENDPOINTstringEndpoint base do exportador OTLP.# OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318
OTEL_EXPORTER_OTLP_TRACES_ENDPOINTstringEndpoint OTLP específico para rastreamento.# OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=
OTEL_EXPORTER_OTLP_HEADERSstringCabeçalhos do exportador OTLP.# OTEL_EXPORTER_OTLP_HEADERS=
OTEL_TRACES_EXPORTERstringSeleção do exportador de rastreamento.# OTEL_TRACES_EXPORTER=otlp
OTEL_TRACES_SAMPLERstringAmostrador de rastreamento OpenTelemetry.# OTEL_TRACES_SAMPLER=parentbased_always_on
OTEL_LOG_LEVELstringNível de log do SDK OpenTelemetry.# OTEL_LOG_LEVEL=INFO
OTEL_SDK_DISABLEDbooleanDesabilite o SDK do OpenTelemetry mesmo quando o rastreamento estiver ativado.# OTEL_SDK_DISABLED=false
OTEL_IOREDIS_TRACING_ENABLEDbooleanHabilitar spans de nível de comando do Redis. Desabilitado por padrão para manter os rastreamentos do backend em alto nível.# OTEL_IOREDIS_TRACING_ENABLED=false

Como está este guia?