mirror of
https://github.com/Icinga/icinga2.git
synced 2025-07-23 21:55:03 +02:00
parent
aaa6154fd7
commit
0713918c5e
@ -94,7 +94,8 @@ void IdoMysqlConnection::Pause(void)
|
|||||||
|
|
||||||
void IdoMysqlConnection::ExceptionHandler(boost::exception_ptr exp)
|
void IdoMysqlConnection::ExceptionHandler(boost::exception_ptr exp)
|
||||||
{
|
{
|
||||||
Log(LogCritical, "db_ido_mysql", "Exception during database operation: " + DiagnosticInformation(exp));
|
Log(LogCritical, "db_ido_mysql", "Exception during database operation: '" + ErrorInformation(exp) + "'");
|
||||||
|
Log(LogDebug, "db_ido_mysql", "Exception during database operation: " + DiagnosticInformation(exp));
|
||||||
|
|
||||||
boost::mutex::scoped_lock lock(m_ConnectionMutex);
|
boost::mutex::scoped_lock lock(m_ConnectionMutex);
|
||||||
|
|
||||||
|
@ -152,3 +152,12 @@ String icinga::DiagnosticInformation(boost::exception_ptr eptr)
|
|||||||
|
|
||||||
return boost::diagnostic_information(eptr);
|
return boost::diagnostic_information(eptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String icinga::ErrorInformation(boost::exception_ptr eptr)
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
boost::rethrow_exception(eptr);
|
||||||
|
} catch (const std::exception& ex) {
|
||||||
|
return ex.what();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -84,7 +84,18 @@ String DiagnosticInformation(const T& ex, StackTrace *stack = NULL, ContextTrace
|
|||||||
return result.str();
|
return result.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
String ErrorInformation(const T& ex)
|
||||||
|
{
|
||||||
|
std::ostringstream result;
|
||||||
|
|
||||||
|
result << ex.what();
|
||||||
|
|
||||||
|
return result.str();
|
||||||
|
}
|
||||||
|
|
||||||
I2_BASE_API String DiagnosticInformation(boost::exception_ptr eptr);
|
I2_BASE_API String DiagnosticInformation(boost::exception_ptr eptr);
|
||||||
|
I2_BASE_API String ErrorInformation(boost::exception_ptr eptr);
|
||||||
|
|
||||||
class I2_BASE_API posix_error : virtual public std::exception, virtual public boost::exception { };
|
class I2_BASE_API posix_error : virtual public std::exception, virtual public boost::exception { };
|
||||||
|
|
||||||
|
@ -181,7 +181,7 @@ void ApiListener::AddConnection(const String& node, const String& service)
|
|||||||
Utility::QueueAsyncCallback(boost::bind(&ApiListener::NewClientHandler, this, client, RoleClient));
|
Utility::QueueAsyncCallback(boost::bind(&ApiListener::NewClientHandler, this, client, RoleClient));
|
||||||
} catch (const std::exception& ex) {
|
} catch (const std::exception& ex) {
|
||||||
std::ostringstream info, debug;
|
std::ostringstream info, debug;
|
||||||
info << "Cannot connect to host '" << node << "' on port '" << service << "'.";
|
info << "Cannot connect to host '" << node << "' on port '" << service << "'";
|
||||||
debug << info << std::endl << DiagnosticInformation(ex);
|
debug << info << std::endl << DiagnosticInformation(ex);
|
||||||
Log(LogCritical, "remote", info.str());
|
Log(LogCritical, "remote", info.str());
|
||||||
Log(LogDebug, "remote", debug.str());
|
Log(LogDebug, "remote", debug.str());
|
||||||
|
Loading…
x
Reference in New Issue
Block a user