mirror of https://gitee.com/bigwinds/arangodb
Add backtraces to FATAL exits.
This commit is contained in:
parent
48e3131ad0
commit
77233f9b94
|
@ -266,9 +266,18 @@ void CLEANUP_LOGGING_AND_EXIT_ON_FATAL_ERROR (void);
|
||||||
|
|
||||||
#define LOG_FATAL_AND_EXIT(...) \
|
#define LOG_FATAL_AND_EXIT(...) \
|
||||||
do { \
|
do { \
|
||||||
LOG_ARG_CHECK(__VA_ARGS__) \
|
LOG_ARG_CHECK(__VA_ARGS__); \
|
||||||
if (TRI_IsHumanLogging() && TRI_IsFatalLogging()) { \
|
if (TRI_IsHumanLogging() && TRI_IsFatalLogging()) { \
|
||||||
TRI_Log(__FUNCTION__, __FILE__, __LINE__, TRI_LOG_LEVEL_FATAL, TRI_LOG_SEVERITY_HUMAN, __VA_ARGS__); \
|
TRI_Log(__FUNCTION__, __FILE__, __LINE__, \
|
||||||
|
TRI_LOG_LEVEL_FATAL, \
|
||||||
|
TRI_LOG_SEVERITY_HUMAN, \
|
||||||
|
__VA_ARGS__); \
|
||||||
|
std::string bt; \
|
||||||
|
TRI_GetBacktrace(bt); \
|
||||||
|
TRI_Log(__FUNCTION__, __FILE__, __LINE__, \
|
||||||
|
TRI_LOG_LEVEL_ERROR, \
|
||||||
|
TRI_LOG_SEVERITY_HUMAN, \
|
||||||
|
"%s", bt.c_str()); \
|
||||||
} \
|
} \
|
||||||
CLEANUP_LOGGING_AND_EXIT_ON_FATAL_ERROR(); \
|
CLEANUP_LOGGING_AND_EXIT_ON_FATAL_ERROR(); \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
@ -290,9 +299,11 @@ void CLEANUP_LOGGING_AND_EXIT_ON_FATAL_ERROR (void);
|
||||||
|
|
||||||
#define LOG_ERROR(...) \
|
#define LOG_ERROR(...) \
|
||||||
do { \
|
do { \
|
||||||
LOG_ARG_CHECK(__VA_ARGS__) \
|
LOG_ARG_CHECK(__VA_ARGS__); \
|
||||||
if (TRI_IsHumanLogging() && TRI_IsErrorLogging()) { \
|
if (TRI_IsHumanLogging() && TRI_IsErrorLogging()) { \
|
||||||
TRI_Log(__FUNCTION__, __FILE__, __LINE__, TRI_LOG_LEVEL_ERROR, TRI_LOG_SEVERITY_HUMAN, __VA_ARGS__); \
|
TRI_Log(__FUNCTION__, __FILE__, __LINE__, \
|
||||||
|
TRI_LOG_LEVEL_ERROR, \
|
||||||
|
TRI_LOG_SEVERITY_HUMAN, __VA_ARGS__); \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
|
@ -314,7 +325,10 @@ void CLEANUP_LOGGING_AND_EXIT_ON_FATAL_ERROR (void);
|
||||||
do { \
|
do { \
|
||||||
LOG_ARG_CHECK(__VA_ARGS__) \
|
LOG_ARG_CHECK(__VA_ARGS__) \
|
||||||
if (TRI_IsHumanLogging() && TRI_IsWarningLogging()) { \
|
if (TRI_IsHumanLogging() && TRI_IsWarningLogging()) { \
|
||||||
TRI_Log(__FUNCTION__, __FILE__, __LINE__, TRI_LOG_LEVEL_WARNING, TRI_LOG_SEVERITY_HUMAN, __VA_ARGS__); \
|
TRI_Log(__FUNCTION__, __FILE__, __LINE__, \
|
||||||
|
TRI_LOG_LEVEL_WARNING, \
|
||||||
|
TRI_LOG_SEVERITY_HUMAN, \
|
||||||
|
__VA_ARGS__); \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
|
@ -334,9 +348,12 @@ void CLEANUP_LOGGING_AND_EXIT_ON_FATAL_ERROR (void);
|
||||||
|
|
||||||
#define LOG_INFO(...) \
|
#define LOG_INFO(...) \
|
||||||
do { \
|
do { \
|
||||||
LOG_ARG_CHECK(__VA_ARGS__) \
|
LOG_ARG_CHECK(__VA_ARGS__); \
|
||||||
if (TRI_IsHumanLogging() && TRI_IsInfoLogging()) { \
|
if (TRI_IsHumanLogging() && TRI_IsInfoLogging()) { \
|
||||||
TRI_Log(__FUNCTION__, __FILE__, __LINE__, TRI_LOG_LEVEL_INFO, TRI_LOG_SEVERITY_HUMAN, __VA_ARGS__); \
|
TRI_Log(__FUNCTION__, __FILE__, __LINE__, \
|
||||||
|
TRI_LOG_LEVEL_INFO, \
|
||||||
|
TRI_LOG_SEVERITY_HUMAN, \
|
||||||
|
__VA_ARGS__); \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
|
@ -356,9 +373,12 @@ void CLEANUP_LOGGING_AND_EXIT_ON_FATAL_ERROR (void);
|
||||||
|
|
||||||
#define LOG_DEBUG(...) \
|
#define LOG_DEBUG(...) \
|
||||||
do { \
|
do { \
|
||||||
LOG_ARG_CHECK(__VA_ARGS__) \
|
LOG_ARG_CHECK(__VA_ARGS__); \
|
||||||
if (TRI_IsHumanLogging() && TRI_IsDebugLogging(__FILE__)) { \
|
if (TRI_IsHumanLogging() && TRI_IsDebugLogging(__FILE__)) { \
|
||||||
TRI_Log(__FUNCTION__, __FILE__, __LINE__, TRI_LOG_LEVEL_DEBUG, TRI_LOG_SEVERITY_HUMAN, __VA_ARGS__); \
|
TRI_Log(__FUNCTION__, __FILE__, __LINE__, \
|
||||||
|
TRI_LOG_LEVEL_DEBUG, \
|
||||||
|
TRI_LOG_SEVERITY_HUMAN, \
|
||||||
|
__VA_ARGS__); \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
|
@ -376,9 +396,12 @@ void CLEANUP_LOGGING_AND_EXIT_ON_FATAL_ERROR (void);
|
||||||
|
|
||||||
#define LOG_TRACE(...) \
|
#define LOG_TRACE(...) \
|
||||||
do { \
|
do { \
|
||||||
LOG_ARG_CHECK(__VA_ARGS__) \
|
LOG_ARG_CHECK(__VA_ARGS__); \
|
||||||
if (TRI_IsHumanLogging() && TRI_IsTraceLogging(__FILE__)) { \
|
if (TRI_IsHumanLogging() && TRI_IsTraceLogging(__FILE__)) { \
|
||||||
TRI_Log(__FUNCTION__, __FILE__, __LINE__, TRI_LOG_LEVEL_TRACE, TRI_LOG_SEVERITY_HUMAN, __VA_ARGS__); \
|
TRI_Log(__FUNCTION__, __FILE__, __LINE__, \
|
||||||
|
TRI_LOG_LEVEL_TRACE, \
|
||||||
|
TRI_LOG_SEVERITY_HUMAN, \
|
||||||
|
__VA_ARGS__); \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
|
@ -398,9 +421,12 @@ void CLEANUP_LOGGING_AND_EXIT_ON_FATAL_ERROR (void);
|
||||||
|
|
||||||
#define LOG_USAGE(...) \
|
#define LOG_USAGE(...) \
|
||||||
do { \
|
do { \
|
||||||
LOG_ARG_CHECK(__VA_ARGS__) \
|
LOG_ARG_CHECK(__VA_ARGS__); \
|
||||||
if (TRI_IsUsageLogging()) { \
|
if (TRI_IsUsageLogging()) { \
|
||||||
TRI_Log(__FUNCTION__, __FILE__, __LINE__, TRI_LOG_LEVEL_INFO, TRI_LOG_SEVERITY_USAGE, __VA_ARGS__); \
|
TRI_Log(__FUNCTION__, __FILE__, __LINE__, \
|
||||||
|
TRI_LOG_LEVEL_INFO, \
|
||||||
|
TRI_LOG_SEVERITY_USAGE, \
|
||||||
|
__VA_ARGS__); \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue