encfs/vendor/github.com/muflihun/easyloggingpp/samples/STL/crash.cpp

49 lines
1.1 KiB
C++
Raw Normal View History

//
// This file is part of Easylogging++ samples
//
// Demonstration on how crashes are handled. You can set second argument of this progam to `y`
// and application will not abort before crash is handled
//
// Revision 1.1
// @author mkhan3189
//
#include "easylogging++.h"
INITIALIZE_EASYLOGGINGPP
class Crasher {
public:
Crasher(void) {
str = nullptr;
call3();
}
void call1(void) {
LOG(INFO) << "Bye bye!";
str->clear(); // Crash!
}
void call2(void) {
LOG(INFO) << "Calling call1()";
call1();
}
void call3(void) {
LOG(INFO) << "Calling call2()";
call2();
}
private:
std::string* str;
};
int main(int argc, char** argv) {
// If argv[1] == "y" means PREVENT CRASH ABORTION = YES
if (argc > 1 && argv[1][0] == 'y') {
el::Loggers::addFlag(el::LoggingFlag::DisableApplicationAbortOnFatalLog);
LOG(FATAL) << "Before we crash we try to log using FATAL log and make sure app did not crash because we added flag DisableApplicationAbortOnFatalLog";
}
Crasher c;
return 0;
}