Я думаю, что расширенная функциональность, которую обеспечивает Boost, и, как вы говорите, это стандартная нестандартная библиотека C ++, оправдывает ее как зависимость.
Ваш объект домена может иметь события, которые извещают о том, что что-то происходит внутри.
Ваша инфраструктура может подключаться к этим событиям для регистрации того, что необходимо.
If you need to log the values you can use reflection to build a string description of your objects. Lots of platforms have ready-made libraries that can do things like this for your.
I really can't see many sensible use cases for logging from inside the domain model. Actually with good test coverage there's not many good technical use cases for logging at all. I suppose there may be some nice legal ones.