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

System logowania

Ten dokument wyjaśnia, jak korzystać z funkcji logowania w LibreChat, która zapisuje logi błędów i debugowania w folderze `/api/logs`. Możesz używać tych logów do rozwiązywania problemów, monitorowania serwera i zgłaszania błędów. Możesz również wyłączyć logi debugowania, jeśli chcesz zaoszczędzić miejsce.

Ogólne

LibreChat ma wbudowane centralne logowanie w swoim backendzie (api).

  • W przypadku instalacji Docker, pliki dziennika są zapisywane w /logs
debug-2024-01-01.log
error-2024-01-01.log
meiliSync-2024-01-01.log
  • W przypadku instalacji przez npm, pliki dziennika (logi) są zapisywane w /api/logs
debug-2024-01-01.log
error-2024-01-01.log
meiliSync-2024-01-01.log

Dzienniki błędów są zapisywane domyślnie. Dzienniki debugowania są włączone domyślnie, ale można je wyłączyć, jeśli nie są potrzebne.

Pozwala to na monitorowanie serwera za pomocą zewnętrznych narzędzi, które analizują pliki dziennika, takich jak stos ELK.

Dzienniki debugowania są niezbędne w pracy programisty i przy rozwiązywaniu problemów. Jeśli napotkasz jakiekolwiek problemy z działaniem LibreChat, odtwórz je w miarę możliwości i zgłoś problem, dołączając swoje logi znajdujące się w ./api/logs/debug-%DATE%.log.

Dzienniki błędów są również zapisywane w tej samej lokalizacji: ./api/logs/error-%DATE%.log. Jeśli masz skonfigurowany Meilisearch, dla niego również istnieje oddzielny plik dziennika.

Uwaga:

Uwaga: Dzienniki są rotowane co 14 dni, więc co 14 dni generowany będzie jeden plik dziennika błędów, jeden plik dziennika debugowania oraz jeden plik dziennika meiliSync. Błędy będą również obecne w plikach dziennika debugowania, jednak pliki dziennika błędów zawierają ślady stosu (stack traces) oraz bardziej szczegółowe informacje.

Konfiguracja

  • Włączaj lub wyłączaj logi debugowania za pomocą poniższej zmiennej środowiskowej. Domyślnie, nawet jeśli nigdy nie ustawisz tej zmiennej, logi debugowania będą generowane, ale masz możliwość ich wyłączenia, ustawiając ją na FALSE.
KeyTypeDescriptionExample
DEBUG_LOGGINGbooleanUtrzymuj aktywne logi debugowania.DEBUG_LOGGING=true

Uwaga: zaleca się wyłączenie logów debugowania w środowisku produkcyjnym.

  • Aby uzyskać szczegółowe dane wyjściowe serwera w konsoli/terminalu, możesz ustawić poniższą wartość na TRUE:
KeyTypeDescriptionExample
DEBUG_CONSOLEbooleanWłącz szczegółowe logi konsoli/stdout w tym samym formacie, co logi debugowania w pliku.DEBUG_CONSOLE=false

Nie jest to jednak zalecane, ponieważ dane wyjściowe mogą być dość rozwlekłe. Funkcja ta jest domyślnie wyłączona i powinna być włączana oszczędnie.

  • W przypadku obsługi logów konsoli we wdrożeniach chmurowych (takich jak GCP lub AWS), włączenie tej opcji spowoduje zrzucanie logów ze znacznikiem czasu UTC i sformatowanie ich jako JSON.
KeyTypeDescriptionExample
CONSOLE_JSONbooleanWłącz szczegółowe logi JSON w konsoli/stdout, odpowiednie dla wdrożeń w chmurze, takich jak GCP/AWS.CONSOLE_JSON=false

Domyślnie długość ciągu JSON jest przycinana do 255 znaków. Możesz to skonfigurować za pomocą następującej zmiennej środowiskowej:

KeyTypeDescriptionExample
CONSOLE_JSON_STRING_LENGTHnumberSkonfiguruj rozmiar ucięcia dla wartości ciągów znaków w logach konsoli/stdout w formacie JSON. Domyślnie: 255.# CONSOLE_JSON_STRING_LENGTH=255
  • Transporty logów oparte na plikach są domyślnie włączone. Ustaw LOG_TO_FILE=false, jeśli Twoje wdrożenie powinno wysyłać logi wyłącznie do stdout/stderr.
KeyTypeDescriptionExample
LOG_TO_FILEbooleanUstaw na false, aby wyłączyć transporty Winston oparte na plikach.LOG_TO_FILE=true

Śledzenie OpenTelemetry

LibreChat może emitować ślady OpenTelemetry backendu dla serwera, bazy danych, Redis oraz widoczności wychodzącego ruchu HTTP. Spany na poziomie poleceń Redis są opcjonalne, dzięki czemu domyślne ślady pozostają na wysokim poziomie szczegółowości. Jest to oddzielne rozwiązanie od Langfuse, które pozostaje zalecaną opcją dla obserwowalności promptów i modeli specyficznych dla GenAI.

KeyTypeDescriptionExample
OTEL_TRACING_ENABLEDbooleanWłącz śledzenie OpenTelemetry dla backendu.# OTEL_TRACING_ENABLED=false
OTEL_SERVICE_NAMEstringNazwa usługi raportowana do OpenTelemetry. Domyślnie: librechat.# OTEL_SERVICE_NAME=librechat
OTEL_SERVICE_VERSIONstringWersja usługi zgłaszana do OpenTelemetry.# OTEL_SERVICE_VERSION=
OTEL_EXPORTER_OTLP_ENDPOINTstringPodstawowy endpoint eksportera OTLP.# OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318
OTEL_EXPORTER_OTLP_TRACES_ENDPOINTstringPunkt końcowy OTLP specyficzny dla śledzenia.# OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=
OTEL_EXPORTER_OTLP_HEADERSstringNagłówki eksportera OTLP.# OTEL_EXPORTER_OTLP_HEADERS=
OTEL_TRACES_EXPORTERstringWybór eksportera śledzenia.# OTEL_TRACES_EXPORTER=otlp
OTEL_TRACES_SAMPLERstringPróbkownik śladów OpenTelemetry.# OTEL_TRACES_SAMPLER=parentbased_always_on
OTEL_LOG_LEVELstringPoziom logowania OpenTelemetry SDK.# OTEL_LOG_LEVEL=INFO
OTEL_SDK_DISABLEDbooleanWyłącz SDK OpenTelemetry, nawet gdy śledzenie jest włączone.# OTEL_SDK_DISABLED=false
OTEL_IOREDIS_TRACING_ENABLEDbooleanWłącz zakresy na poziomie poleceń Redis. Domyślnie wyłączone, aby zachować wysoki poziom śledzenia backendu.# OTEL_IOREDIS_TRACING_ENABLED=false

Jaka jest ta instrukcja?