Адаптер и перегруженный оператор вывода в поток - adapter.h/.cpp
Логирование и переключение между разными типами логирования - LogSwitch.h, LoggerProxy.h
Взаимодействие с файлами по идиоме RAII - FileRAII.h
Нет, идея RAII не в том, чтобы вы синглтон над файлом сделали. А чтобы файл захватывался и освобождался именно там, где он используется. В вашем случае в логгере.
9
Адаптер и перегруженный оператор вывода в поток - adapter.h/.cpp Логирование и переключение между разными типами логирования - LogSwitch.h, LoggerProxy.h Взаимодействие с файлами по идиоме RAII - FileRAII.h