Почему текущая реализация GetLogger с одним instance некорректна при разных параметрах? Как исправить используя map?

Один глобальный instance игнорирует различия параметров. Храните экземпляры в map по полному ключу конфигурации и защищайте создание от конкурентного доступа.

Короткий ответ

Что ответить на собеседовании

Один глобальный instance игнорирует различия параметров. Храните экземпляры в map по полному ключу конфигурации и защищайте создание от конкурентного доступа.

Подробный разбор

Ответ с пояснениями

Один глобальный instance игнорирует различия параметров. Храните экземпляры в map по полному ключу конфигурации и защищайте создание от конкурентного доступа.

Ключ должен включать все параметры, влияющие на поведение логгера, например сервис и назначение вывода. Под mutex выполняйте проверку наличия и создание, чтобы два вызова с одинаковым ключом не получили разные экземпляры. После публикации конфигурацию лучше не менять. Продумайте срок жизни кэша и закрытие ресурсов: бесконечно растущая map логгеров не исправляет проблему управления памятью.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее