Вот пример, который использует Java. Прошло много времени с тех пор, как я использовал log4j, но, насколько я помню, весь инструмент ведения журнала log4j инициализировался из файла XML. Сам файл XML может содержать несколько регистраторов с различными конфигурациями (куда вы пишете, на какие уровни записываются и т. Д.). Таким образом, в этом случае у вас будут объекты логгера, а не статические методы логгера, чтобы указать, какой регистратор вы хотите вызвать. То есть.
Logger logger = Logger.get("Network");
будет регистрировать вещи, связанные с сетевым подключением, пропущенными пакетами и т. д., или
Logger logger = Logger.get("Application");
который будет регистрировать вещи, связанные с вашей бизнес-логикой / приложением. По крайней мере, с помощью log4j вы также можете настроить, какие уровни журнала фактически записываются (информация, трассировка, предупреждение, ошибка, отладка являются доступными уровнями по умолчанию).
Если бы у вас были статические методы, лучшее, что вы могли бы сделать, - это настроить один регистратор, который указывал бы на стандартный вывод, файл и т. Д., Но все, что вы регистрируете, было бы в одном месте. С объектами регистратора это проще сделать, чтобы ваша информация о журналах распределялась по нескольким файлам.