Ведение «почти полных» журналов даже при сбоях системы - PullRequest
1 голос
/ 22 августа 2010

У нас есть приложение c ++ (консоль), которое работает на windows и unix. Это приложение использовало выходные файлы для вывода подробных файлов журнала системных вызовов / prints / и т. Д. Проблема в том, что в некоторых случаях мы можем получить сигнал 11/2 после добавления новых функций.

Теперь, когда это происходит, мы не получаем «почти полную» информацию из файлов журнала, чтобы отследить причину ошибки / проблемы, поскольку выходные файлы не закрываются должным образом, когда возникает сигнал 11. (это только частичный или нулевой размер)

Мы рассмотрели возможность добавления команды очистки после каждой печати строки fprintf. Q:

  1. Это считается хорошей практикой?
  2. хорошо ли работает fflush на платформе Windows?
  3. есть какие-нибудь мысли / другие способы сохранить файлы журналов, когда система может неожиданно зависнуть?

1 Ответ

1 голос
/ 22 августа 2010

Вам необходимо отправить данные журнала не в файл, а в какое-то внешнее приложение для ведения журнала, которое вы можете создать за 30 минут.Отправка вывода возможна через сокет или по каналам или с помощью SendMessage () Windows API (если вы ориентируетесь на Windows).

...