Re: Перенаправление потока cerr
От: pzhy  
Дата: 27.01.13 18:44
Оценка:
Здравствуйте, 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);
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.