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(...) \
|
||||
do { \
|
||||
LOG_ARG_CHECK(__VA_ARGS__) \
|
||||
LOG_ARG_CHECK(__VA_ARGS__); \
|
||||
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(); \
|
||||
} while (0)
|
||||
|
@ -290,9 +299,11 @@ void CLEANUP_LOGGING_AND_EXIT_ON_FATAL_ERROR (void);
|
|||
|
||||
#define LOG_ERROR(...) \
|
||||
do { \
|
||||
LOG_ARG_CHECK(__VA_ARGS__) \
|
||||
LOG_ARG_CHECK(__VA_ARGS__); \
|
||||
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)
|
||||
|
||||
|
@ -314,7 +325,10 @@ void CLEANUP_LOGGING_AND_EXIT_ON_FATAL_ERROR (void);
|
|||
do { \
|
||||
LOG_ARG_CHECK(__VA_ARGS__) \
|
||||
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)
|
||||
|
||||
|
@ -334,9 +348,12 @@ void CLEANUP_LOGGING_AND_EXIT_ON_FATAL_ERROR (void);
|
|||
|
||||
#define LOG_INFO(...) \
|
||||
do { \
|
||||
LOG_ARG_CHECK(__VA_ARGS__) \
|
||||
LOG_ARG_CHECK(__VA_ARGS__); \
|
||||
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)
|
||||
|
||||
|
@ -356,9 +373,12 @@ void CLEANUP_LOGGING_AND_EXIT_ON_FATAL_ERROR (void);
|
|||
|
||||
#define LOG_DEBUG(...) \
|
||||
do { \
|
||||
LOG_ARG_CHECK(__VA_ARGS__) \
|
||||
LOG_ARG_CHECK(__VA_ARGS__); \
|
||||
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)
|
||||
|
||||
|
@ -376,9 +396,12 @@ void CLEANUP_LOGGING_AND_EXIT_ON_FATAL_ERROR (void);
|
|||
|
||||
#define LOG_TRACE(...) \
|
||||
do { \
|
||||
LOG_ARG_CHECK(__VA_ARGS__) \
|
||||
LOG_ARG_CHECK(__VA_ARGS__); \
|
||||
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)
|
||||
|
||||
|
@ -398,9 +421,12 @@ void CLEANUP_LOGGING_AND_EXIT_ON_FATAL_ERROR (void);
|
|||
|
||||
#define LOG_USAGE(...) \
|
||||
do { \
|
||||
LOG_ARG_CHECK(__VA_ARGS__) \
|
||||
LOG_ARG_CHECK(__VA_ARGS__); \
|
||||
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)
|
||||
|
||||
|
|
Loading…
Reference in New Issue