Ana içeriğe geç

Loglama ve Gözlemlenebilirlik

Kaynak: internal/logging/logging.go, internal/middleware/middleware.go, kurucu scriptleri. Go süreci slog’u her zaman os.Stdout’a yazar. Uygulama dosya logger’ı yoktur.

Uygulama logger’ı

Ayar Varsayılan Etki
LOG_FORMAT json JSON slog; yalnız text metne geçer
LOG_LEVEL debug debug / info / warn / error

logging.New her zaman ekler: service, environment, instance_id, version.

slog.JSONHandler ayrıca time, level, msg yazar.

Günlükler nereye gider

Çalışma zamanı Hedef
Konsol serve Süreç stdout
Windows Native Süreç stdout (SCM genelde atar). Kurucu dosyası: C:\IQVizyon\IQVIntegrationAPI\logs\installer-update.log. Event Log kaynağı kaydedilir; uygulama slog’u oraya yazılmaz.
Linux Native systemd journal (journalctl -u iqv-integration-api.service). /var/log/iqvizyon/iqv-integration-api birim ReadWritePaths dizinidir, uygulama log dosyası değildir.
Docker Konteyner stdout/stderr → Docker json-file (max-size: 10m, max-file: 5)

```bash

Linux native

sudo journalctl -u iqv-integration-api.service -f

Docker

docker logs -f docker compose logs -f ```

request_id

  • Başlık: X-Request-ID (internal/requestid)
  • Yok/geçersiz → yeni UUID
  • Yanıtta ve zarfta request_id olarak döner
  • Access log request_id içerir

Access log alanları

middleware.RequestLogger: timestamp, request_id, method, path, status_code, duration_ms, remote_ip, user_agent, message.

Panic recover panic, stack ekler. HTTP start/stop addr, tls_mode yazabilir.

Sorun giderme için log toplama

  1. /health/live ve /health/ready yanıtlarını alın (secret yok).
  2. Kurucu/güncelleme günlüklerini toplayın (Windows installer-update.log; Linux script stdout).
  3. Aynı request_id için stdout/journal/docker logs alın.
  4. deployment.json / Linux deployment metadata alın (secret yok).
  5. .env, Mongo URI, token veya ham istek gövdesi eklemeyin.

Asla günlüklemeyin

  • Authorization başlıkları
  • Client secret / JWT secret
  • Access token / parola / özel anahtar
  • Redakte edilmemiş MongoDB URI
  • Hassas ham istek gövdeleri
  • Integration actor ObjectID

Config.RedactedMap() mongodb_uri ve health-push bearer’ı redakte eder; actor için yalnız integration_actor_configured (boolean) gösterir.