Мы используем Apache Log4cxx для ведения журналов, которые не идеальны, но обеспечивают большую инфраструктуру и последовательный подход к проектам. Я считаю, что он кроссплатформенный, хотя мы используем его только в Windows.
Он обеспечивает настройку во время выполнения через ini-файл, который позволяет вам контролировать, как выводится файл журнала, и вы можете написать свои собственные дополнения, если вы хотите определенного поведения (например, диалоговое окно с ошибкой под пользовательским интерфейсом).
Если клиенты вашей библиотеки также примут его, то они интегрируют свои выходные данные в один и тот же файл журнала.
Различие между экземплярами основного класса может поддерживаться с помощью функции вложенного диагностического контекста (NDC).