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