Logging

Tiger_Log is a structured facade over Zend_Log. It emits one JSON object per line, and it never throws into the caller — logging can't break a request.

Structured + auto-enriched

Every entry is enriched with a per-request id and the authenticated user / org / role, so you can trace a single request across lines and filter by tenant:

Tiger_Log::info('update.step', ['item' => 'billing', 'step' => 'migrate', 'ok' => true]);
Tiger_Log::error('update.failed', ['item' => 'billing', 'error' => $e->getMessage()]);

Pluggable sinks

Where lines go is config, not code — set tiger.log.*:

  • null, errorlog, stderr / stream, syslog
  • direct AWS CloudWatch, GCP Cloud Logging, or Azure Monitor (cloud SDKs optional — if a sink's SDK is missing it warns and falls back to errorlog).

A configurable minimum level keeps noise down in production.

See also

  • Updates — every update step is Tiger_Log-ged as well as shown.