Less segfaults. More run.

JSON-90
Lars Rohwedder 2018-06-21 15:49:00 +02:00
parent 41221140ca
commit 2f2466a8ca
5 changed files with 19 additions and 12 deletions

View File

@ -778,10 +778,10 @@ void JsonAdapter::unregisterEventListener(const std::string& address, unsigned p
}
Logger::Stream&& JsonAdapter::Log(Logger::Severity sev) const
Logger::Stream JsonAdapter::Log(Logger::Severity sev) const
{
check_guard();
return i->Log << sev;
return std::move(i->Log << sev);
}

View File

@ -82,7 +82,7 @@ public:
static pEp_identity* retrieveNextIdentity(void* obj);
static void* keyserverLookupThreadRoutine(void* arg);
Logger::Stream&& Log(Logger::Severity s = Logger::Severity::Debug) const;
Logger::Stream Log(Logger::Severity s = Logger::Severity::Debug) const;
// will throw logic_error if guard variables contains illegal values, which means: *this is not a valid JsonAdapter object!
void check_guard() const;

View File

@ -24,7 +24,7 @@ namespace LoggerS // namespace containing all data for the Logger singleton. HA
{
std::FILE* logfile = 0;
std::recursive_mutex mut;
Logger::Severity loglevel;
Logger::Severity loglevel = Logger::DebugInternal;
Logger::Target target = Logger::Target(-1);
std::string filename;
std::string ident;
@ -94,8 +94,9 @@ void Logger::start(const std::string& program_name, const std::string& filename)
if(LoggerS::initialized==false)
{
LoggerS::start(program_name, filename);
Logger& l = ::getLogger();
l.debug("Logger has been started.");
}
::getLogger().debug("Logger has been started.");
}
@ -382,9 +383,9 @@ template const Logger::Stream& operator<<(const Logger::Stream&, const void*cons
template const Logger::Stream& operator<<(const Logger::Stream&, void*const&);
template const Logger::Stream& operator<<(const Logger::Stream&, const std::thread::id&);
Logger::Stream&& operator<<(Logger& parent, Logger::Severity sev)
Logger::Stream operator<<(Logger& parent, Logger::Severity sev)
{
return std::move(Logger::Stream(&parent, sev));
return Logger::Stream(&parent, sev);
}
// End of file

View File

@ -127,9 +127,6 @@ public:
Stream(Logger* _L, Logger::Severity _sev);
~Stream();
Stream(const Stream&) = delete;
void operator=(const Stream&) = delete;
mutable std::string s;
private:
@ -145,7 +142,7 @@ private:
};
// creates a Stream, who collect data in pieces and logs it to the "parent" logger in its destructor with the given severity
Logger::Stream&& operator<<(Logger& parent, Logger::Severity sev);
Logger::Stream operator<<(Logger& parent, Logger::Severity sev);
template<class T>
const Logger::Stream& operator<<(const Logger::Stream&, const T&);

View File

@ -96,8 +96,11 @@ try
}else{
Logger::setDefaultTarget(Logger::Target::File);
}
Logger::start("JsonAdapter", logfile);
Logger L("main");
L.info("main logger started");
if(add_sharks)
{
ev_server::addSharks();
@ -140,10 +143,16 @@ try
ja.Log() << "Good bye. :-)";
JsonAdapter::global_shutdown();
}
catch(std::exception const& e)
{
std::cerr << "Inner exception caught in main(): \"" << e.what() << "\"" << std::endl;
daemonize_commit(1);
exit(8);
}
catch (...)
{
daemonize_commit(1);
exit(1);
exit(9);
}
}
catch(std::exception const& e)