NullLogger now fully implements the Logger interface by adding:
- WithField(key string, value interface{}) Logger
- WithFields(fields map[string]interface{}) Logger
Both methods return the same NullLogger instance (no-op behavior),
which is appropriate for a null logger used in testing.