2013-10-15 5 views
0

Я нахожусь в Windows 7, используя boost :: log in v1.54 в консольном приложении. Я использую add_file_log() с вращением, который отлично работает, пока моя функция main() завершается. Но если приложение завершается снаружи с помощью powershell CloseMainWindow(), файл журнала никогда не записывается.boost :: log add_file_log не пишет, если приложение выходит с CTRL_CLOSE_EVENT

Я установил обработчик управления окнами с помощью SetConsoleCtrlHandler() и могу уловить CTRL_CLOSE_EVENT, но я не знаю, есть ли метод boost :: log, который я могу вызвать, чтобы заставить файл журнала писать до моего приложение выходит. У кого-нибудь есть решение для этого?

Спасибо,

Rob 

ответ

1

Два вещь вы можете посмотреть. Следующее основано на моем опыте

1) Файл журнала существует, но пуст. В этом случае используйте auto_flush, чтобы очистить журнал на диске при создании сообщений журнала. В противном случае вы можете получить пустой журнал, если сообщений об ошибках недостаточно, чтобы их можно было сбросить при возникновении CTRL_CLOSE_EVENT.

2) Файл журнала выходит, но вы не думаете, что это так. В этом случае убедитесь, что файл журнала создан в том же каталоге, что и целевой каталог. Целевой каталог собирает файлы журнала, когда приемники закрыты. Если ключевое слово file_name установлено только для имени файла, оно будет создано в рабочем каталоге, а не в целевом каталоге. Если приложение выходит, не закрывая приемники, файл не будет перемещен в целевой каталог.

HTH,

 Смежные вопросы

  • Нет связанных вопросов^_^