Switch logging from log to tracing

Replaced the `log` crate with `tracing` throughout the codebase for unified logging. This removes the `testing_logger` dependency and adds test utilities in the common library for capturing logs during tests.