Pattern
Wrap meaningful work in a diagnostics scope, then capture exceptions before rethrowing.
using (AxisDiagnostics.BeginScope(new AxisDiagnosticContext {
JobId = jobId,
SimulationId = simulationId,
Operation = "simulation.offline_batch"
})) {
AxisDiagnostics.Info("Queued offline simulation.", "job-queued", AxisDiagnosticKind.Job);
}
try {
RunSimulation();
} catch (Exception ex) {
AxisDiagnostics.CaptureException(ex, "Simulation failed.", "simulation-failed", AxisDiagnosticKind.Simulation);
throw;
}