Здравствуйте, as90, Вы писали:
A>Есть желание логировать все сообщения в программе в файл определено складывая данные.
A>Если данные записываются в cerr с помощью потоков std::cerr<<
A>тут решение я нашел можно у потока cerr сменить буфер и делать с сообщениями что угодно.
A>Но у меня есть проблема в том что есть некоторые библиотеки собранные другим компилятором, то есть Runtime у этой либы свой и такой прием не работает.
A>в nix можно перенаправить поток ошибок с помощью функции dup2, но хотелось бы иметь возможность еще форматировать этот вывод, то есть лучше всего иметь функцию которая вызывается при записи данных в cerr.
A>в nix опыть же можно использовать pipe и fork для отлова таких сообщений, в винде fork нету, так что этот способ не работает.
A>Нет ли более изящного способа и чтоб работал и под linux и под windows с компилятором mingw?
Для вин возможно использовать cygwin? Думаю для вин можно сделать тоже самое с помощью Psh. Сделать скрипт.
Можно использовать freopen (если она есть в вин):
freopen("my.log","w",stderr);