Здравствуйте, Homunculus, Вы писали:
H>Нужно отловить по логам креш программы. В качестве логгинга придумал велосипед, не знаю настолько он корректен
H>Есть глобальный объект логгера, пишущий в файл. В констукторе логгера я проверяю есть ли уже файл лога и если он есть, то предполагаю, что в предыдущий раз программа законилась с падением и предлагаю отправить лог разработчику. В деструкторе логгера я соответственно файл лога закрываю и удаляю
H>Расчет на то, что в случае падения деструктор логгера не вызовется и файл не удалится — то етсь лог останется и при следующем запуске мы предложим его отправить
H>Насколько такой подход корректен? Какие подводные камни? Если это кривой подход — как нужно сделать правильно?
Пиши в лог последнюю запись, о том что прога отработала нормально. При запуске — проверяй это — если запись о нормальном завершении есть — удаляй лог и начинай снова. Иначе — предлагай отправить.
Нужно отловить по логам креш программы. В качестве логгинга придумал велосипед, не знаю настолько он корректен
Есть глобальный объект логгера, пишущий в файл. В констукторе логгера я проверяю есть ли уже файл лога и если он есть, то предполагаю, что в предыдущий раз программа законилась с падением и предлагаю отправить лог разработчику. В деструкторе логгера я соответственно файл лога закрываю и удаляю
Расчет на то, что в случае падения деструктор логгера не вызовется и файл не удалится — то етсь лог останется и при следующем запуске мы предложим его отправить
Насколько такой подход корректен? Какие подводные камни? Если это кривой подход — как нужно сделать правильно?
Здравствуйте, Homunculus, Вы писали:
H>как нужно сделать правильно?
Правильно запустить еще один процесс который будет ждать пока не упадёт подопечный и уже он за ним всё убирает и отправляет останки на экспертизу.
H>Пиши в лог последнюю запись, о том что прога отработала нормально. При запуске — проверяй это — если запись о нормальном завершении есть — удаляй лог и начинай снова. Иначе — предлагай отправить.
Здравствуйте, Homunculus, Вы писали:
H>Нужно отловить по логам креш программы. В качестве логгинга придумал велосипед, не знаю настолько он корректен
Можно сразу отсылать на какой-то сервис типа Sentry.
Можно добавить эту опцию в меню, чтобы пользователь сам мог при крэше перезапустить программу (если получится) и отослать логи.