How would you architect a robust logging and tracing framework to debug non-deterministic LLM outputs in production?