commit
fe8ffe5577
|
@ -18,6 +18,7 @@
|
||||||
|
|
||||||
#include "tarray.h"
|
#include "tarray.h"
|
||||||
#include "tdef.h"
|
#include "tdef.h"
|
||||||
|
#include "tlog.h"
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
|
@ -126,19 +127,6 @@ typedef struct {
|
||||||
SMonDiskDesc tempdir;
|
SMonDiskDesc tempdir;
|
||||||
} SMonDiskInfo;
|
} SMonDiskInfo;
|
||||||
|
|
||||||
typedef enum {
|
|
||||||
MON_LEVEL_ERROR = 0,
|
|
||||||
MON_LEVEL_INFO = 1,
|
|
||||||
MON_LEVEL_DEBUG = 2,
|
|
||||||
MON_LEVEL_TRACE = 3,
|
|
||||||
} EMonLogLevel;
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
int64_t ts;
|
|
||||||
EMonLogLevel level;
|
|
||||||
char content[MON_LOG_LEN];
|
|
||||||
} SMonLogItem;
|
|
||||||
|
|
||||||
typedef struct SMonInfo SMonInfo;
|
typedef struct SMonInfo SMonInfo;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
@ -149,7 +137,7 @@ typedef struct {
|
||||||
|
|
||||||
int32_t monInit(const SMonCfg *pCfg);
|
int32_t monInit(const SMonCfg *pCfg);
|
||||||
void monCleanup();
|
void monCleanup();
|
||||||
void monAddLogItem(SMonLogItem *pItem);
|
void monRecordLog(int64_t ts, ELogLevel level, const char *content);
|
||||||
|
|
||||||
SMonInfo *monCreateMonitorInfo();
|
SMonInfo *monCreateMonitorInfo();
|
||||||
void monSetBasicInfo(SMonInfo *pMonitor, SMonBasicInfo *pInfo);
|
void monSetBasicInfo(SMonInfo *pMonitor, SMonBasicInfo *pInfo);
|
||||||
|
|
|
@ -168,20 +168,18 @@ int32_t queryCreateTableMetaFromMsg(STableMetaRsp* msg, bool isSuperTable, STabl
|
||||||
extern int32_t (*queryBuildMsg[TDMT_MAX])(void* input, char **msg, int32_t msgSize, int32_t *msgLen);
|
extern int32_t (*queryBuildMsg[TDMT_MAX])(void* input, char **msg, int32_t msgSize, int32_t *msgLen);
|
||||||
extern int32_t (*queryProcessMsgRsp[TDMT_MAX])(void* output, char *msg, int32_t msgSize);
|
extern int32_t (*queryProcessMsgRsp[TDMT_MAX])(void* output, char *msg, int32_t msgSize);
|
||||||
|
|
||||||
|
|
||||||
#define SET_META_TYPE_NULL(t) (t) = META_TYPE_NULL_TABLE
|
#define SET_META_TYPE_NULL(t) (t) = META_TYPE_NULL_TABLE
|
||||||
#define SET_META_TYPE_CTABLE(t) (t) = META_TYPE_CTABLE
|
#define SET_META_TYPE_CTABLE(t) (t) = META_TYPE_CTABLE
|
||||||
#define SET_META_TYPE_TABLE(t) (t) = META_TYPE_TABLE
|
#define SET_META_TYPE_TABLE(t) (t) = META_TYPE_TABLE
|
||||||
#define SET_META_TYPE_BOTH_TABLE(t) (t) = META_TYPE_BOTH_TABLE
|
#define SET_META_TYPE_BOTH_TABLE(t) (t) = META_TYPE_BOTH_TABLE
|
||||||
|
|
||||||
#define qFatal(...) do { if (qDebugFlag & DEBUG_FATAL) { taosPrintLog("QRY FATAL ", qDebugFlag, __VA_ARGS__); }} while(0)
|
#define qFatal(...) do { if (qDebugFlag & DEBUG_FATAL) { taosPrintLog("QRY FATAL ", DEBUG_FATAL, qDebugFlag, __VA_ARGS__); }} while(0)
|
||||||
#define qError(...) do { if (qDebugFlag & DEBUG_ERROR) { taosPrintLog("QRY ERROR ", qDebugFlag, __VA_ARGS__); }} while(0)
|
#define qError(...) do { if (qDebugFlag & DEBUG_ERROR) { taosPrintLog("QRY ERROR ", DEBUG_ERROR, qDebugFlag, __VA_ARGS__); }} while(0)
|
||||||
#define qWarn(...) do { if (qDebugFlag & DEBUG_WARN) { taosPrintLog("QRY WARN ", qDebugFlag, __VA_ARGS__); }} while(0)
|
#define qWarn(...) do { if (qDebugFlag & DEBUG_WARN) { taosPrintLog("QRY WARN ", DEBUG_WARN, qDebugFlag, __VA_ARGS__); }} while(0)
|
||||||
#define qInfo(...) do { if (qDebugFlag & DEBUG_INFO) { taosPrintLog("QRY ", qDebugFlag, __VA_ARGS__); }} while(0)
|
#define qInfo(...) do { if (qDebugFlag & DEBUG_INFO) { taosPrintLog("QRY ", DEBUG_INFO, qDebugFlag, __VA_ARGS__); }} while(0)
|
||||||
#define qDebug(...) do { if (qDebugFlag & DEBUG_DEBUG) { taosPrintLog("QRY ", qDebugFlag, __VA_ARGS__); }} while(0)
|
#define qDebug(...) do { if (qDebugFlag & DEBUG_DEBUG) { taosPrintLog("QRY ", DEBUG_DEBUG, qDebugFlag, __VA_ARGS__); }} while(0)
|
||||||
#define qTrace(...) do { if (qDebugFlag & DEBUG_TRACE) { taosPrintLog("QRY ", qDebugFlag, __VA_ARGS__); }} while(0)
|
#define qTrace(...) do { if (qDebugFlag & DEBUG_TRACE) { taosPrintLog("QRY ", DEBUG_TRACE, qDebugFlag, __VA_ARGS__); }} while(0)
|
||||||
#define qDebugL(...) do { if (qDebugFlag & DEBUG_DEBUG) { taosPrintLongString("QRY ", qDebugFlag, __VA_ARGS__); }} while(0)
|
#define qDebugL(...) do { if (qDebugFlag & DEBUG_DEBUG) { taosPrintLongString("QRY ", DEBUG_DEBUG, qDebugFlag, __VA_ARGS__); }} while(0)
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,43 +24,41 @@
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
extern int32_t wDebugFlag;
|
#define wFatal(...) \
|
||||||
|
{ \
|
||||||
#define wFatal(...) \
|
if (wDebugFlag & DEBUG_FATAL) { \
|
||||||
{ \
|
taosPrintLog("WAL FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); \
|
||||||
if (wDebugFlag & DEBUG_FATAL) { \
|
} \
|
||||||
taosPrintLog("WAL FATAL ", 255, __VA_ARGS__); \
|
|
||||||
} \
|
|
||||||
}
|
}
|
||||||
#define wError(...) \
|
#define wError(...) \
|
||||||
{ \
|
{ \
|
||||||
if (wDebugFlag & DEBUG_ERROR) { \
|
if (wDebugFlag & DEBUG_ERROR) { \
|
||||||
taosPrintLog("WAL ERROR ", 255, __VA_ARGS__); \
|
taosPrintLog("WAL ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); \
|
||||||
} \
|
} \
|
||||||
}
|
}
|
||||||
#define wWarn(...) \
|
#define wWarn(...) \
|
||||||
{ \
|
{ \
|
||||||
if (wDebugFlag & DEBUG_WARN) { \
|
if (wDebugFlag & DEBUG_WARN) { \
|
||||||
taosPrintLog("WAL WARN ", 255, __VA_ARGS__); \
|
taosPrintLog("WAL WARN ", DEBUG_WARN, 255, __VA_ARGS__); \
|
||||||
} \
|
} \
|
||||||
}
|
}
|
||||||
#define wInfo(...) \
|
#define wInfo(...) \
|
||||||
{ \
|
{ \
|
||||||
if (wDebugFlag & DEBUG_INFO) { \
|
if (wDebugFlag & DEBUG_INFO) { \
|
||||||
taosPrintLog("WAL ", 255, __VA_ARGS__); \
|
taosPrintLog("WAL ", DEBUG_INFO, 255, __VA_ARGS__); \
|
||||||
} \
|
} \
|
||||||
}
|
}
|
||||||
#define wDebug(...) \
|
#define wDebug(...) \
|
||||||
{ \
|
{ \
|
||||||
if (wDebugFlag & DEBUG_DEBUG) { \
|
if (wDebugFlag & DEBUG_DEBUG) { \
|
||||||
taosPrintLog("WAL ", wDebugFlag, __VA_ARGS__); \
|
taosPrintLog("WAL ", DEBUG_DEBUG, wDebugFlag, __VA_ARGS__); \
|
||||||
} \
|
} \
|
||||||
}
|
}
|
||||||
#define wTrace(...) \
|
#define wTrace(...) \
|
||||||
{ \
|
{ \
|
||||||
if (wDebugFlag & DEBUG_TRACE) { \
|
if (wDebugFlag & DEBUG_TRACE) { \
|
||||||
taosPrintLog("WAL ", wDebugFlag, __VA_ARGS__); \
|
taosPrintLog("WAL ", DEBUG_TRACE, wDebugFlag, __VA_ARGS__); \
|
||||||
} \
|
} \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define WAL_HEAD_VER 0
|
#define WAL_HEAD_VER 0
|
||||||
|
|
|
@ -22,9 +22,29 @@
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
DEBUG_FATAL = 1,
|
||||||
|
DEBUG_ERROR = 1,
|
||||||
|
DEBUG_WARN = 2,
|
||||||
|
DEBUG_INFO = 2,
|
||||||
|
DEBUG_DEBUG = 4,
|
||||||
|
DEBUG_TRACE = 8,
|
||||||
|
DEBUG_DUMP = 16,
|
||||||
|
DEBUG_SCREEN = 64,
|
||||||
|
DEBUG_FILE = 128
|
||||||
|
} ELogLevel;
|
||||||
|
|
||||||
|
typedef void (*LogFp)(int64_t ts, ELogLevel level, const char *content);
|
||||||
|
|
||||||
|
extern bool tsLogEmbedded;
|
||||||
extern bool tsAsyncLog;
|
extern bool tsAsyncLog;
|
||||||
extern int32_t tsNumOfLogLines;
|
extern int32_t tsNumOfLogLines;
|
||||||
extern int32_t tsLogKeepDays;
|
extern int32_t tsLogKeepDays;
|
||||||
|
extern LogFp tsLogFp;
|
||||||
|
extern int64_t tsNumOfErrorLogs;
|
||||||
|
extern int64_t tsNumOfInfoLogs;
|
||||||
|
extern int64_t tsNumOfDebugLogs;
|
||||||
|
extern int64_t tsNumOfTraceLogs;
|
||||||
extern int32_t dDebugFlag;
|
extern int32_t dDebugFlag;
|
||||||
extern int32_t vDebugFlag;
|
extern int32_t vDebugFlag;
|
||||||
extern int32_t mDebugFlag;
|
extern int32_t mDebugFlag;
|
||||||
|
@ -40,45 +60,33 @@ extern int32_t tsdbDebugFlag;
|
||||||
extern int32_t tqDebugFlag;
|
extern int32_t tqDebugFlag;
|
||||||
extern int32_t fsDebugFlag;
|
extern int32_t fsDebugFlag;
|
||||||
|
|
||||||
#define DEBUG_FATAL 1U
|
|
||||||
#define DEBUG_ERROR DEBUG_FATAL
|
|
||||||
#define DEBUG_WARN 2U
|
|
||||||
#define DEBUG_INFO DEBUG_WARN
|
|
||||||
#define DEBUG_DEBUG 4U
|
|
||||||
#define DEBUG_TRACE 8U
|
|
||||||
#define DEBUG_DUMP 16U
|
|
||||||
#define DEBUG_SCREEN 64U
|
|
||||||
#define DEBUG_FILE 128U
|
|
||||||
|
|
||||||
int32_t taosInitLog(const char *logName, int32_t maxFiles);
|
int32_t taosInitLog(const char *logName, int32_t maxFiles);
|
||||||
void taosCloseLog();
|
void taosCloseLog();
|
||||||
void taosResetLog();
|
void taosResetLog();
|
||||||
void taosSetAllDebugFlag(int32_t flag);
|
void taosSetAllDebugFlag(int32_t flag);
|
||||||
void taosDumpData(uint8_t *msg, int32_t len);
|
void taosDumpData(uint8_t *msg, int32_t len);
|
||||||
|
|
||||||
void taosPrintLog(const char *flags, int32_t dflag, const char *format, ...)
|
void taosPrintLog(const char *flags, ELogLevel level, int32_t dflag, const char *format, ...)
|
||||||
#ifdef __GNUC__
|
#ifdef __GNUC__
|
||||||
__attribute__((format(printf, 3, 4)))
|
__attribute__((format(printf, 4, 5)))
|
||||||
#endif
|
#endif
|
||||||
;
|
;
|
||||||
|
|
||||||
void taosPrintLongString(const char *flags, int32_t dflag, const char *format, ...)
|
void taosPrintLongString(const char *flags, ELogLevel level, int32_t dflag, const char *format, ...)
|
||||||
#ifdef __GNUC__
|
#ifdef __GNUC__
|
||||||
__attribute__((format(printf, 3, 4)))
|
__attribute__((format(printf, 4, 5)))
|
||||||
#endif
|
#endif
|
||||||
;
|
;
|
||||||
|
|
||||||
extern int8_t tscEmbeddedInUtil;
|
#define uFatal(...) { if (uDebugFlag & DEBUG_FATAL) { taosPrintLog("UTL FATAL", DEBUG_FATAL, tsLogEmbedded ? 255 : uDebugFlag, __VA_ARGS__); }}
|
||||||
|
#define uError(...) { if (uDebugFlag & DEBUG_ERROR) { taosPrintLog("UTL ERROR ", DEBUG_ERROR, tsLogEmbedded ? 255 : uDebugFlag, __VA_ARGS__); }}
|
||||||
|
#define uWarn(...) { if (uDebugFlag & DEBUG_WARN) { taosPrintLog("UTL WARN ", DEBUG_WARN, tsLogEmbedded ? 255 : uDebugFlag, __VA_ARGS__); }}
|
||||||
|
#define uInfo(...) { if (uDebugFlag & DEBUG_INFO) { taosPrintLog("UTL ", DEBUG_INFO, tsLogEmbedded ? 255 : uDebugFlag, __VA_ARGS__); }}
|
||||||
|
#define uDebug(...) { if (uDebugFlag & DEBUG_DEBUG) { taosPrintLog("UTL ", DEBUG_DEBUG, uDebugFlag, __VA_ARGS__); }}
|
||||||
|
#define uTrace(...) { if (uDebugFlag & DEBUG_TRACE) { taosPrintLog("UTL ", DEBUG_TRACE, uDebugFlag, __VA_ARGS__); }}
|
||||||
|
|
||||||
#define uFatal(...) { if (uDebugFlag & DEBUG_FATAL) { taosPrintLog("UTL FATAL", tscEmbeddedInUtil ? 255 : uDebugFlag, __VA_ARGS__); }}
|
#define pError(...) { taosPrintLog("APP ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }
|
||||||
#define uError(...) { if (uDebugFlag & DEBUG_ERROR) { taosPrintLog("UTL ERROR ", tscEmbeddedInUtil ? 255 : uDebugFlag, __VA_ARGS__); }}
|
#define pPrint(...) { taosPrintLog("APP ", DEBUG_INFO, 255, __VA_ARGS__); }
|
||||||
#define uWarn(...) { if (uDebugFlag & DEBUG_WARN) { taosPrintLog("UTL WARN ", tscEmbeddedInUtil ? 255 : uDebugFlag, __VA_ARGS__); }}
|
|
||||||
#define uInfo(...) { if (uDebugFlag & DEBUG_INFO) { taosPrintLog("UTL ", tscEmbeddedInUtil ? 255 : uDebugFlag, __VA_ARGS__); }}
|
|
||||||
#define uDebug(...) { if (uDebugFlag & DEBUG_DEBUG) { taosPrintLog("UTL ", uDebugFlag, __VA_ARGS__); }}
|
|
||||||
#define uTrace(...) { if (uDebugFlag & DEBUG_TRACE) { taosPrintLog("UTL ", uDebugFlag, __VA_ARGS__); }}
|
|
||||||
|
|
||||||
#define pError(...) { taosPrintLog("APP ERROR ", 255, __VA_ARGS__); }
|
|
||||||
#define pPrint(...) { taosPrintLog("APP ", 255, __VA_ARGS__); }
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,13 +22,13 @@ extern "C" {
|
||||||
|
|
||||||
#include "tlog.h"
|
#include "tlog.h"
|
||||||
|
|
||||||
#define tscFatal(...) do { if (cDebugFlag & DEBUG_FATAL) { taosPrintLog("TSC FATAL ", cDebugFlag, __VA_ARGS__); }} while(0)
|
#define tscFatal(...) do { if (cDebugFlag & DEBUG_FATAL) { taosPrintLog("TSC FATAL ", DEBUG_FATAL, cDebugFlag, __VA_ARGS__); }} while(0)
|
||||||
#define tscError(...) do { if (cDebugFlag & DEBUG_ERROR) { taosPrintLog("TSC ERROR ", cDebugFlag, __VA_ARGS__); }} while(0)
|
#define tscError(...) do { if (cDebugFlag & DEBUG_ERROR) { taosPrintLog("TSC ERROR ", DEBUG_ERROR, cDebugFlag, __VA_ARGS__); }} while(0)
|
||||||
#define tscWarn(...) do { if (cDebugFlag & DEBUG_WARN) { taosPrintLog("TSC WARN ", cDebugFlag, __VA_ARGS__); }} while(0)
|
#define tscWarn(...) do { if (cDebugFlag & DEBUG_WARN) { taosPrintLog("TSC WARN ", DEBUG_WARN, cDebugFlag, __VA_ARGS__); }} while(0)
|
||||||
#define tscInfo(...) do { if (cDebugFlag & DEBUG_INFO) { taosPrintLog("TSC ", cDebugFlag, __VA_ARGS__); }} while(0)
|
#define tscInfo(...) do { if (cDebugFlag & DEBUG_INFO) { taosPrintLog("TSC ", DEBUG_INFO, cDebugFlag, __VA_ARGS__); }} while(0)
|
||||||
#define tscDebug(...) do { if (cDebugFlag & DEBUG_DEBUG) { taosPrintLog("TSC ", cDebugFlag, __VA_ARGS__); }} while(0)
|
#define tscDebug(...) do { if (cDebugFlag & DEBUG_DEBUG) { taosPrintLog("TSC ", DEBUG_DEBUG, cDebugFlag, __VA_ARGS__); }} while(0)
|
||||||
#define tscTrace(...) do { if (cDebugFlag & DEBUG_TRACE) { taosPrintLog("TSC ", cDebugFlag, __VA_ARGS__); }} while(0)
|
#define tscTrace(...) do { if (cDebugFlag & DEBUG_TRACE) { taosPrintLog("TSC ", DEBUG_TRACE, cDebugFlag, __VA_ARGS__); }} while(0)
|
||||||
#define tscDebugL(...) do { if (cDebugFlag & DEBUG_DEBUG) { taosPrintLongString("TSC ", cDebugFlag, __VA_ARGS__); }} while(0)
|
#define tscDebugL(...) do { if (cDebugFlag & DEBUG_DEBUG) { taosPrintLongString("TSC ", DEBUG_DEBUG, cDebugFlag, __VA_ARGS__); }} while(0)
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|
|
@ -478,10 +478,10 @@ int32_t taosCreateLog(const char *logname, int32_t logFileNum, const char *cfgDi
|
||||||
if (pCfg == NULL) return -1;
|
if (pCfg == NULL) return -1;
|
||||||
|
|
||||||
if (tsc) {
|
if (tsc) {
|
||||||
tscEmbeddedInUtil = 0;
|
tsLogEmbedded = 0;
|
||||||
if (taosAddClientLogCfg(pCfg) != 0) return -1;
|
if (taosAddClientLogCfg(pCfg) != 0) return -1;
|
||||||
} else {
|
} else {
|
||||||
tscEmbeddedInUtil = 1;
|
tsLogEmbedded = 1;
|
||||||
if (taosAddClientLogCfg(pCfg) != 0) return -1;
|
if (taosAddClientLogCfg(pCfg) != 0) return -1;
|
||||||
if (taosAddServerLogCfg(pCfg) != 0) return -1;
|
if (taosAddServerLogCfg(pCfg) != 0) return -1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,14 +47,12 @@ extern "C" {
|
||||||
#include "vnode.h"
|
#include "vnode.h"
|
||||||
#include "tfs.h"
|
#include "tfs.h"
|
||||||
|
|
||||||
extern int32_t dDebugFlag;
|
#define dFatal(...) { if (dDebugFlag & DEBUG_FATAL) { taosPrintLog("DND FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); }}
|
||||||
|
#define dError(...) { if (dDebugFlag & DEBUG_ERROR) { taosPrintLog("DND ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }}
|
||||||
#define dFatal(...) { if (dDebugFlag & DEBUG_FATAL) { taosPrintLog("DND FATAL ", 255, __VA_ARGS__); }}
|
#define dWarn(...) { if (dDebugFlag & DEBUG_WARN) { taosPrintLog("DND WARN ", DEBUG_WARN, 255, __VA_ARGS__); }}
|
||||||
#define dError(...) { if (dDebugFlag & DEBUG_ERROR) { taosPrintLog("DND ERROR ", 255, __VA_ARGS__); }}
|
#define dInfo(...) { if (dDebugFlag & DEBUG_INFO) { taosPrintLog("DND ", DEBUG_INFO, 255, __VA_ARGS__); }}
|
||||||
#define dWarn(...) { if (dDebugFlag & DEBUG_WARN) { taosPrintLog("DND WARN ", 255, __VA_ARGS__); }}
|
#define dDebug(...) { if (dDebugFlag & DEBUG_DEBUG) { taosPrintLog("DND ", DEBUG_DEBUG, dDebugFlag, __VA_ARGS__); }}
|
||||||
#define dInfo(...) { if (dDebugFlag & DEBUG_INFO) { taosPrintLog("DND ", 255, __VA_ARGS__); }}
|
#define dTrace(...) { if (dDebugFlag & DEBUG_TRACE) { taosPrintLog("DND ", DEBUG_TRACE, dDebugFlag, __VA_ARGS__); }}
|
||||||
#define dDebug(...) { if (dDebugFlag & DEBUG_DEBUG) { taosPrintLog("DND ", dDebugFlag, __VA_ARGS__); }}
|
|
||||||
#define dTrace(...) { if (dDebugFlag & DEBUG_TRACE) { taosPrintLog("DND ", dDebugFlag, __VA_ARGS__); }}
|
|
||||||
|
|
||||||
typedef enum { DND_STAT_INIT, DND_STAT_RUNNING, DND_STAT_STOPPED } EStat;
|
typedef enum { DND_STAT_INIT, DND_STAT_RUNNING, DND_STAT_STOPPED } EStat;
|
||||||
typedef enum { DND_WORKER_SINGLE, DND_WORKER_MULTI } EWorkerType;
|
typedef enum { DND_WORKER_SINGLE, DND_WORKER_MULTI } EWorkerType;
|
||||||
|
|
|
@ -28,7 +28,7 @@ void Testbase::InitLog(const char* path) {
|
||||||
wDebugFlag = 0;
|
wDebugFlag = 0;
|
||||||
sDebugFlag = 0;
|
sDebugFlag = 0;
|
||||||
tsdbDebugFlag = 0;
|
tsdbDebugFlag = 0;
|
||||||
tscEmbeddedInUtil = 1;
|
tsLogEmbedded = 1;
|
||||||
tsAsyncLog = 0;
|
tsAsyncLog = 0;
|
||||||
|
|
||||||
taosRemoveDir(path);
|
taosRemoveDir(path);
|
||||||
|
|
|
@ -34,46 +34,6 @@
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
extern int32_t mDebugFlag;
|
|
||||||
|
|
||||||
// mnode log function
|
|
||||||
#define mFatal(...) \
|
|
||||||
{ \
|
|
||||||
if (mDebugFlag & DEBUG_FATAL) { \
|
|
||||||
taosPrintLog("MND FATAL ", 255, __VA_ARGS__); \
|
|
||||||
} \
|
|
||||||
}
|
|
||||||
#define mError(...) \
|
|
||||||
{ \
|
|
||||||
if (mDebugFlag & DEBUG_ERROR) { \
|
|
||||||
taosPrintLog("MND ERROR ", 255, __VA_ARGS__); \
|
|
||||||
} \
|
|
||||||
}
|
|
||||||
#define mWarn(...) \
|
|
||||||
{ \
|
|
||||||
if (mDebugFlag & DEBUG_WARN) { \
|
|
||||||
taosPrintLog("MND WARN ", 255, __VA_ARGS__); \
|
|
||||||
} \
|
|
||||||
}
|
|
||||||
#define mInfo(...) \
|
|
||||||
{ \
|
|
||||||
if (mDebugFlag & DEBUG_INFO) { \
|
|
||||||
taosPrintLog("MND ", 255, __VA_ARGS__); \
|
|
||||||
} \
|
|
||||||
}
|
|
||||||
#define mDebug(...) \
|
|
||||||
{ \
|
|
||||||
if (mDebugFlag & DEBUG_DEBUG) { \
|
|
||||||
taosPrintLog("MND ", mDebugFlag, __VA_ARGS__); \
|
|
||||||
} \
|
|
||||||
}
|
|
||||||
#define mTrace(...) \
|
|
||||||
{ \
|
|
||||||
if (mDebugFlag & DEBUG_TRACE) { \
|
|
||||||
taosPrintLog("MND ", mDebugFlag, __VA_ARGS__); \
|
|
||||||
} \
|
|
||||||
}
|
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
MND_AUTH_ACCT_START = 0,
|
MND_AUTH_ACCT_START = 0,
|
||||||
MND_AUTH_ACCT_USER,
|
MND_AUTH_ACCT_USER,
|
||||||
|
|
|
@ -31,6 +31,13 @@
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define mFatal(...) { if (mDebugFlag & DEBUG_FATAL) { taosPrintLog("MND FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); }}
|
||||||
|
#define mError(...) { if (mDebugFlag & DEBUG_ERROR) { taosPrintLog("MND ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }}
|
||||||
|
#define mWarn(...) { if (mDebugFlag & DEBUG_WARN) { taosPrintLog("MND WARN ", DEBUG_WARN, 255, __VA_ARGS__); }}
|
||||||
|
#define mInfo(...) { if (mDebugFlag & DEBUG_INFO) { taosPrintLog("MND ", DEBUG_INFO, 255, __VA_ARGS__); }}
|
||||||
|
#define mDebug(...) { if (mDebugFlag & DEBUG_DEBUG) { taosPrintLog("MND ", DEBUG_DEBUG, mDebugFlag, __VA_ARGS__); }}
|
||||||
|
#define mTrace(...) { if (mDebugFlag & DEBUG_TRACE) { taosPrintLog("MND ", DEBUG_TRACE, mDebugFlag, __VA_ARGS__); }}
|
||||||
|
|
||||||
typedef int32_t (*MndMsgFp)(SMnodeMsg *pMsg);
|
typedef int32_t (*MndMsgFp)(SMnodeMsg *pMsg);
|
||||||
typedef int32_t (*MndInitFp)(SMnode *pMnode);
|
typedef int32_t (*MndInitFp)(SMnode *pMnode);
|
||||||
typedef void (*MndCleanupFp)(SMnode *pMnode);
|
typedef void (*MndCleanupFp)(SMnode *pMnode);
|
||||||
|
|
|
@ -28,12 +28,12 @@
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define mFatal(...) { if (mDebugFlag & DEBUG_FATAL) { taosPrintLog("MND FATAL ", 255, __VA_ARGS__); }}
|
#define mFatal(...) { if (mDebugFlag & DEBUG_FATAL) { taosPrintLog("MND FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); }}
|
||||||
#define mError(...) { if (mDebugFlag & DEBUG_ERROR) { taosPrintLog("MND ERROR ", 255, __VA_ARGS__); }}
|
#define mError(...) { if (mDebugFlag & DEBUG_ERROR) { taosPrintLog("MND ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }}
|
||||||
#define mWarn(...) { if (mDebugFlag & DEBUG_WARN) { taosPrintLog("MND WARN ", 255, __VA_ARGS__); }}
|
#define mWarn(...) { if (mDebugFlag & DEBUG_WARN) { taosPrintLog("MND WARN ", DEBUG_WARN, 255, __VA_ARGS__); }}
|
||||||
#define mInfo(...) { if (mDebugFlag & DEBUG_INFO) { taosPrintLog("MND ", 255, __VA_ARGS__); }}
|
#define mInfo(...) { if (mDebugFlag & DEBUG_INFO) { taosPrintLog("MND ", DEBUG_INFO, 255, __VA_ARGS__); }}
|
||||||
#define mDebug(...) { if (mDebugFlag & DEBUG_DEBUG) { taosPrintLog("MND ", mDebugFlag, __VA_ARGS__); }}
|
#define mDebug(...) { if (mDebugFlag & DEBUG_DEBUG) { taosPrintLog("MND ", DEBUG_DEBUG, mDebugFlag, __VA_ARGS__); }}
|
||||||
#define mTrace(...) { if (mDebugFlag & DEBUG_TRACE) { taosPrintLog("MND ", mDebugFlag, __VA_ARGS__); }}
|
#define mTrace(...) { if (mDebugFlag & DEBUG_TRACE) { taosPrintLog("MND ", DEBUG_TRACE, mDebugFlag, __VA_ARGS__); }}
|
||||||
|
|
||||||
#define SDB_MAX_SIZE (32 * 1024)
|
#define SDB_MAX_SIZE (32 * 1024)
|
||||||
|
|
||||||
|
|
|
@ -25,43 +25,41 @@
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
extern int32_t tqDebugFlag;
|
#define tqFatal(...) \
|
||||||
|
{ \
|
||||||
#define tqFatal(...) \
|
if (tqDebugFlag & DEBUG_FATAL) { \
|
||||||
{ \
|
taosPrintLog("TQ FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); \
|
||||||
if (tqDebugFlag & DEBUG_FATAL) { \
|
} \
|
||||||
taosPrintLog("TQ FATAL ", 255, __VA_ARGS__); \
|
|
||||||
} \
|
|
||||||
}
|
}
|
||||||
#define tqError(...) \
|
#define tqError(...) \
|
||||||
{ \
|
{ \
|
||||||
if (tqDebugFlag & DEBUG_ERROR) { \
|
if (tqDebugFlag & DEBUG_ERROR) { \
|
||||||
taosPrintLog("TQ ERROR ", 255, __VA_ARGS__); \
|
taosPrintLog("TQ ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); \
|
||||||
} \
|
} \
|
||||||
}
|
}
|
||||||
#define tqWarn(...) \
|
#define tqWarn(...) \
|
||||||
{ \
|
{ \
|
||||||
if (tqDebugFlag & DEBUG_WARN) { \
|
if (tqDebugFlag & DEBUG_WARN) { \
|
||||||
taosPrintLog("TQ WARN ", 255, __VA_ARGS__); \
|
taosPrintLog("TQ WARN ", DEBUG_WARN, 255, __VA_ARGS__); \
|
||||||
} \
|
} \
|
||||||
}
|
}
|
||||||
#define tqInfo(...) \
|
#define tqInfo(...) \
|
||||||
{ \
|
{ \
|
||||||
if (tqDebugFlag & DEBUG_INFO) { \
|
if (tqDebugFlag & DEBUG_INFO) { \
|
||||||
taosPrintLog("TQ ", 255, __VA_ARGS__); \
|
taosPrintLog("TQ ", DEBUG_INFO, 255, __VA_ARGS__); \
|
||||||
} \
|
} \
|
||||||
}
|
}
|
||||||
#define tqDebug(...) \
|
#define tqDebug(...) \
|
||||||
{ \
|
{ \
|
||||||
if (tqDebugFlag & DEBUG_DEBUG) { \
|
if (tqDebugFlag & DEBUG_DEBUG) { \
|
||||||
taosPrintLog("TQ ", tqDebugFlag, __VA_ARGS__); \
|
taosPrintLog("TQ ", DEBUG_DEBUG, tqDebugFlag, __VA_ARGS__); \
|
||||||
} \
|
} \
|
||||||
}
|
}
|
||||||
#define tqTrace(...) \
|
#define tqTrace(...) \
|
||||||
{ \
|
{ \
|
||||||
if (tqDebugFlag & DEBUG_TRACE) { \
|
if (tqDebugFlag & DEBUG_TRACE) { \
|
||||||
taosPrintLog("TQ ", tqDebugFlag, __VA_ARGS__); \
|
taosPrintLog("TQ ", DEBUG_TRACE, tqDebugFlag, __VA_ARGS__); \
|
||||||
} \
|
} \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define TQ_BUFFER_SIZE 8
|
#define TQ_BUFFER_SIZE 8
|
||||||
|
|
|
@ -20,11 +20,11 @@
|
||||||
|
|
||||||
extern int32_t tsdbDebugFlag;
|
extern int32_t tsdbDebugFlag;
|
||||||
|
|
||||||
#define tsdbFatal(...) do { if (tsdbDebugFlag & DEBUG_FATAL) { taosPrintLog("TDB FATAL ", 255, __VA_ARGS__); }} while(0)
|
#define tsdbFatal(...) do { if (tsdbDebugFlag & DEBUG_FATAL) { taosPrintLog("TDB FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); }} while(0)
|
||||||
#define tsdbError(...) do { if (tsdbDebugFlag & DEBUG_ERROR) { taosPrintLog("TDB ERROR ", 255, __VA_ARGS__); }} while(0)
|
#define tsdbError(...) do { if (tsdbDebugFlag & DEBUG_ERROR) { taosPrintLog("TDB ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }} while(0)
|
||||||
#define tsdbWarn(...) do { if (tsdbDebugFlag & DEBUG_WARN) { taosPrintLog("TDB WARN ", 255, __VA_ARGS__); }} while(0)
|
#define tsdbWarn(...) do { if (tsdbDebugFlag & DEBUG_WARN) { taosPrintLog("TDB WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} while(0)
|
||||||
#define tsdbInfo(...) do { if (tsdbDebugFlag & DEBUG_INFO) { taosPrintLog("TDB ", 255, __VA_ARGS__); }} while(0)
|
#define tsdbInfo(...) do { if (tsdbDebugFlag & DEBUG_INFO) { taosPrintLog("TDB ", DEBUG_INFO, 255, __VA_ARGS__); }} while(0)
|
||||||
#define tsdbDebug(...) do { if (tsdbDebugFlag & DEBUG_DEBUG) { taosPrintLog("TDB ", tsdbDebugFlag, __VA_ARGS__); }} while(0)
|
#define tsdbDebug(...) do { if (tsdbDebugFlag & DEBUG_DEBUG) { taosPrintLog("TDB ", DEBUG_DEBUG, tsdbDebugFlag, __VA_ARGS__); }} while(0)
|
||||||
#define tsdbTrace(...) do { if (tsdbDebugFlag & DEBUG_TRACE) { taosPrintLog("TDB ", tsdbDebugFlag, __VA_ARGS__); }} while(0)
|
#define tsdbTrace(...) do { if (tsdbDebugFlag & DEBUG_TRACE) { taosPrintLog("TDB ", DEBUG_TRACE, tsdbDebugFlag, __VA_ARGS__); }} while(0)
|
||||||
|
|
||||||
#endif /* _TD_TSDB_LOG_H_ */
|
#endif /* _TD_TSDB_LOG_H_ */
|
|
@ -88,44 +88,41 @@ int vnodeScheduleTask(SVnodeTask* task);
|
||||||
int32_t vnodePutReqToVQueryQ(SVnode* pVnode, struct SRpcMsg* pReq);
|
int32_t vnodePutReqToVQueryQ(SVnode* pVnode, struct SRpcMsg* pReq);
|
||||||
void vnodeSendReqToDnode(SVnode* pVnode, struct SEpSet* epSet, struct SRpcMsg* pReq);
|
void vnodeSendReqToDnode(SVnode* pVnode, struct SEpSet* epSet, struct SRpcMsg* pReq);
|
||||||
|
|
||||||
// For Log
|
#define vFatal(...) \
|
||||||
extern int32_t vDebugFlag;
|
do { \
|
||||||
|
if (vDebugFlag & DEBUG_FATAL) { \
|
||||||
#define vFatal(...) \
|
taosPrintLog("VND FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); \
|
||||||
do { \
|
} \
|
||||||
if (vDebugFlag & DEBUG_FATAL) { \
|
|
||||||
taosPrintLog("VND FATAL ", 255, __VA_ARGS__); \
|
|
||||||
} \
|
|
||||||
} while (0)
|
} while (0)
|
||||||
#define vError(...) \
|
#define vError(...) \
|
||||||
do { \
|
do { \
|
||||||
if (vDebugFlag & DEBUG_ERROR) { \
|
if (vDebugFlag & DEBUG_ERROR) { \
|
||||||
taosPrintLog("VND ERROR ", 255, __VA_ARGS__); \
|
taosPrintLog("VND ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
#define vWarn(...) \
|
#define vWarn(...) \
|
||||||
do { \
|
do { \
|
||||||
if (vDebugFlag & DEBUG_WARN) { \
|
if (vDebugFlag & DEBUG_WARN) { \
|
||||||
taosPrintLog("VND WARN ", 255, __VA_ARGS__); \
|
taosPrintLog("VND WARN ", DEBUG_WARN, 255, __VA_ARGS__); \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
#define vInfo(...) \
|
#define vInfo(...) \
|
||||||
do { \
|
do { \
|
||||||
if (vDebugFlag & DEBUG_INFO) { \
|
if (vDebugFlag & DEBUG_INFO) { \
|
||||||
taosPrintLog("VND ", 255, __VA_ARGS__); \
|
taosPrintLog("VND ", DEBUG_INFO, 255, __VA_ARGS__); \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
#define vDebug(...) \
|
#define vDebug(...) \
|
||||||
do { \
|
do { \
|
||||||
if (vDebugFlag & DEBUG_DEBUG) { \
|
if (vDebugFlag & DEBUG_DEBUG) { \
|
||||||
taosPrintLog("VND ", tsdbDebugFlag, __VA_ARGS__); \
|
taosPrintLog("VND ", DEBUG_DEBUG, tsdbDebugFlag, __VA_ARGS__); \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
#define vTrace(...) \
|
#define vTrace(...) \
|
||||||
do { \
|
do { \
|
||||||
if (vDebugFlag & DEBUG_TRACE) { \
|
if (vDebugFlag & DEBUG_TRACE) { \
|
||||||
taosPrintLog("VND ", tsdbDebugFlag, __VA_ARGS__); \
|
taosPrintLog("VND ", DEBUG_TRACE, tsdbDebugFlag, __VA_ARGS__); \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
// vnodeCfg.h
|
// vnodeCfg.h
|
||||||
|
|
|
@ -125,41 +125,41 @@ int32_t indexSerialCacheKey(ICacheKey* key, char* buf);
|
||||||
// int32_t indexSerialKey(ICacheKey* key, char* buf);
|
// int32_t indexSerialKey(ICacheKey* key, char* buf);
|
||||||
// int32_t indexSerialTermKey(SIndexTerm* itm, char* buf);
|
// int32_t indexSerialTermKey(SIndexTerm* itm, char* buf);
|
||||||
|
|
||||||
#define indexFatal(...) \
|
#define indexFatal(...) \
|
||||||
do { \
|
do { \
|
||||||
if (sDebugFlag & DEBUG_FATAL) { \
|
if (sDebugFlag & DEBUG_FATAL) { \
|
||||||
taosPrintLog("index FATAL ", 255, __VA_ARGS__); \
|
taosPrintLog("index FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
#define indexError(...) \
|
#define indexError(...) \
|
||||||
do { \
|
do { \
|
||||||
if (sDebugFlag & DEBUG_ERROR) { \
|
if (sDebugFlag & DEBUG_ERROR) { \
|
||||||
taosPrintLog("index ERROR ", 255, __VA_ARGS__); \
|
taosPrintLog("index ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
#define indexWarn(...) \
|
#define indexWarn(...) \
|
||||||
do { \
|
do { \
|
||||||
if (sDebugFlag & DEBUG_WARN) { \
|
if (sDebugFlag & DEBUG_WARN) { \
|
||||||
taosPrintLog("index WARN ", 255, __VA_ARGS__); \
|
taosPrintLog("index WARN ", DEBUG_WARN, 255, __VA_ARGS__); \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
#define indexInfo(...) \
|
#define indexInfo(...) \
|
||||||
do { \
|
do { \
|
||||||
if (sDebugFlag & DEBUG_INFO) { \
|
if (sDebugFlag & DEBUG_INFO) { \
|
||||||
taosPrintLog("index ", 255, __VA_ARGS__); \
|
taosPrintLog("index ", DEBUG_INFO, 255, __VA_ARGS__); \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
#define indexDebug(...) \
|
#define indexDebug(...) \
|
||||||
do { \
|
do { \
|
||||||
if (sDebugFlag & DEBUG_DEBUG) { \
|
if (sDebugFlag & DEBUG_DEBUG) { \
|
||||||
taosPrintLog("index ", sDebugFlag, __VA_ARGS__); \
|
taosPrintLog("index ", DEBUG_DEBUG, sDebugFlag, __VA_ARGS__); \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
#define indexTrace(...) \
|
#define indexTrace(...) \
|
||||||
do { \
|
do { \
|
||||||
if (sDebugFlag & DEBUG_TRACE) { \
|
if (sDebugFlag & DEBUG_TRACE) { \
|
||||||
taosPrintLog("index ", sDebugFlag, __VA_ARGS__); \
|
taosPrintLog("index ", DEBUG_TRACE, sDebugFlag, __VA_ARGS__); \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
#define INDEX_TYPE_CONTAIN_EXTERN_TYPE(ty, exTy) (((ty >> 4) & (exTy)) != 0)
|
#define INDEX_TYPE_CONTAIN_EXTERN_TYPE(ty, exTy) (((ty >> 4) & (exTy)) != 0)
|
||||||
|
|
|
@ -23,18 +23,24 @@
|
||||||
#include "tjson.h"
|
#include "tjson.h"
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
SRWLatch lock;
|
int64_t ts;
|
||||||
SArray *logs; // array of SMonLogItem
|
ELogLevel level;
|
||||||
int32_t maxLogs;
|
char content[MON_LOG_LEN];
|
||||||
const char *server;
|
} SMonLogItem;
|
||||||
uint16_t port;
|
|
||||||
} SMonitor;
|
|
||||||
|
|
||||||
typedef struct SMonInfo {
|
typedef struct SMonInfo {
|
||||||
SArray *logs; // array of SMonLogItem
|
SArray *logs; // array of SMonLogItem
|
||||||
SJson *pJson;
|
SJson *pJson;
|
||||||
} SMonInfo;
|
} SMonInfo;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
pthread_rwlock_t rwlock;
|
||||||
|
SArray *logs; // array of SMonLogItem
|
||||||
|
int32_t maxLogs;
|
||||||
|
const char *server;
|
||||||
|
uint16_t port;
|
||||||
|
} SMonitor;
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -22,6 +22,21 @@
|
||||||
|
|
||||||
static SMonitor tsMonitor = {0};
|
static SMonitor tsMonitor = {0};
|
||||||
|
|
||||||
|
void monRecordLog(int64_t ts, ELogLevel level, const char *content) {
|
||||||
|
pthread_rwlock_rdlock(&tsMonitor.rwlock);
|
||||||
|
int32_t size = taosArrayGetSize(tsMonitor.logs);
|
||||||
|
if (size >= tsMonitor.maxLogs) {
|
||||||
|
uInfo("too many logs for monitor");
|
||||||
|
} else {
|
||||||
|
SMonLogItem item = {.ts = ts, .level = level};
|
||||||
|
SMonLogItem *pItem = taosArrayPush(tsMonitor.logs, &item);
|
||||||
|
if (pItem != NULL) {
|
||||||
|
tstrncpy(pItem->content, content, sizeof(item.content));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
pthread_rwlock_unlock(&tsMonitor.rwlock);
|
||||||
|
}
|
||||||
|
|
||||||
int32_t monInit(const SMonCfg *pCfg) {
|
int32_t monInit(const SMonCfg *pCfg) {
|
||||||
tsMonitor.logs = taosArrayInit(16, sizeof(SMonLogItem));
|
tsMonitor.logs = taosArrayInit(16, sizeof(SMonLogItem));
|
||||||
if (tsMonitor.logs == NULL) {
|
if (tsMonitor.logs == NULL) {
|
||||||
|
@ -32,24 +47,15 @@ int32_t monInit(const SMonCfg *pCfg) {
|
||||||
tsMonitor.maxLogs = pCfg->maxLogs;
|
tsMonitor.maxLogs = pCfg->maxLogs;
|
||||||
tsMonitor.server = pCfg->server;
|
tsMonitor.server = pCfg->server;
|
||||||
tsMonitor.port = pCfg->port;
|
tsMonitor.port = pCfg->port;
|
||||||
taosInitRWLatch(&tsMonitor.lock);
|
tsLogFp = monRecordLog;
|
||||||
|
pthread_rwlock_init(&tsMonitor.rwlock, NULL);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void monCleanup() {
|
void monCleanup() {
|
||||||
taosArrayDestroy(tsMonitor.logs);
|
taosArrayDestroy(tsMonitor.logs);
|
||||||
tsMonitor.logs = NULL;
|
tsMonitor.logs = NULL;
|
||||||
}
|
pthread_rwlock_wrlock(&tsMonitor.rwlock);
|
||||||
|
|
||||||
void monAddLogItem(SMonLogItem *pItem) {
|
|
||||||
taosWLockLatch(&tsMonitor.lock);
|
|
||||||
int32_t size = taosArrayGetSize(tsMonitor.logs);
|
|
||||||
if (size >= tsMonitor.maxLogs) {
|
|
||||||
uInfo("too many logs for monitor");
|
|
||||||
} else {
|
|
||||||
taosArrayPush(tsMonitor.logs, pItem);
|
|
||||||
}
|
|
||||||
taosWUnLockLatch(&tsMonitor.lock);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
SMonInfo *monCreateMonitorInfo() {
|
SMonInfo *monCreateMonitorInfo() {
|
||||||
|
@ -59,10 +65,10 @@ SMonInfo *monCreateMonitorInfo() {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
taosWLockLatch(&tsMonitor.lock);
|
pthread_rwlock_wrlock(&tsMonitor.rwlock);
|
||||||
pMonitor->logs = taosArrayDup(tsMonitor.logs);
|
pMonitor->logs = taosArrayDup(tsMonitor.logs);
|
||||||
taosArrayClear(tsMonitor.logs);
|
taosArrayClear(tsMonitor.logs);
|
||||||
taosWUnLockLatch(&tsMonitor.lock);
|
pthread_rwlock_unlock(&tsMonitor.rwlock);
|
||||||
|
|
||||||
pMonitor->pJson = tjsonCreateObject();
|
pMonitor->pJson = tjsonCreateObject();
|
||||||
if (pMonitor->pJson == NULL || pMonitor->logs == NULL) {
|
if (pMonitor->pJson == NULL || pMonitor->logs == NULL) {
|
||||||
|
@ -270,15 +276,15 @@ void monSetDiskInfo(SMonInfo *pMonitor, SMonDiskInfo *pInfo) {
|
||||||
tjsonAddDoubleToObject(pTempdirJson, "total", pInfo->tempdir.size.total);
|
tjsonAddDoubleToObject(pTempdirJson, "total", pInfo->tempdir.size.total);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const char *monLogLevelStr(EMonLogLevel level) {
|
static const char *monLogLevelStr(ELogLevel level) {
|
||||||
switch (level) {
|
switch (level) {
|
||||||
case MON_LEVEL_ERROR:
|
case DEBUG_ERROR:
|
||||||
return "error";
|
return "error";
|
||||||
case MON_LEVEL_INFO:
|
case DEBUG_INFO:
|
||||||
return "info";
|
return "info";
|
||||||
case MON_LEVEL_DEBUG:
|
case DEBUG_DEBUG:
|
||||||
return "debug";
|
return "debug";
|
||||||
case MON_LEVEL_TRACE:
|
case DEBUG_TRACE:
|
||||||
return "trace";
|
return "trace";
|
||||||
default:
|
default:
|
||||||
return "undefine";
|
return "undefine";
|
||||||
|
@ -318,25 +324,25 @@ static void monSetLogInfo(SMonInfo *pMonitor) {
|
||||||
SJson *pLogError = tjsonCreateObject();
|
SJson *pLogError = tjsonCreateObject();
|
||||||
if (pLogError == NULL) return;
|
if (pLogError == NULL) return;
|
||||||
tjsonAddStringToObject(pLogError, "level", "error");
|
tjsonAddStringToObject(pLogError, "level", "error");
|
||||||
tjsonAddDoubleToObject(pLogError, "total", 1);
|
tjsonAddDoubleToObject(pLogError, "total", tsNumOfErrorLogs);
|
||||||
if (tjsonAddItemToArray(pSummaryJson, pLogError) != 0) tjsonDelete(pLogError);
|
if (tjsonAddItemToArray(pSummaryJson, pLogError) != 0) tjsonDelete(pLogError);
|
||||||
|
|
||||||
SJson *pLogInfo = tjsonCreateObject();
|
SJson *pLogInfo = tjsonCreateObject();
|
||||||
if (pLogInfo == NULL) return;
|
if (pLogInfo == NULL) return;
|
||||||
tjsonAddStringToObject(pLogInfo, "level", "info");
|
tjsonAddStringToObject(pLogInfo, "level", "info");
|
||||||
tjsonAddDoubleToObject(pLogInfo, "total", 1);
|
tjsonAddDoubleToObject(pLogInfo, "total", tsNumOfInfoLogs);
|
||||||
if (tjsonAddItemToArray(pSummaryJson, pLogInfo) != 0) tjsonDelete(pLogInfo);
|
if (tjsonAddItemToArray(pSummaryJson, pLogInfo) != 0) tjsonDelete(pLogInfo);
|
||||||
|
|
||||||
SJson *pLogDebug = tjsonCreateObject();
|
SJson *pLogDebug = tjsonCreateObject();
|
||||||
if (pLogDebug == NULL) return;
|
if (pLogDebug == NULL) return;
|
||||||
tjsonAddStringToObject(pLogDebug, "level", "debug");
|
tjsonAddStringToObject(pLogDebug, "level", "debug");
|
||||||
tjsonAddDoubleToObject(pLogDebug, "total", 1);
|
tjsonAddDoubleToObject(pLogDebug, "total", tsNumOfDebugLogs);
|
||||||
if (tjsonAddItemToArray(pSummaryJson, pLogDebug) != 0) tjsonDelete(pLogDebug);
|
if (tjsonAddItemToArray(pSummaryJson, pLogDebug) != 0) tjsonDelete(pLogDebug);
|
||||||
|
|
||||||
SJson *pLogTrace = tjsonCreateObject();
|
SJson *pLogTrace = tjsonCreateObject();
|
||||||
if (pLogTrace == NULL) return;
|
if (pLogTrace == NULL) return;
|
||||||
tjsonAddStringToObject(pLogTrace, "level", "trace");
|
tjsonAddStringToObject(pLogTrace, "level", "trace");
|
||||||
tjsonAddDoubleToObject(pLogTrace, "total", 1);
|
tjsonAddDoubleToObject(pLogTrace, "total", tsNumOfTraceLogs);
|
||||||
if (tjsonAddItemToArray(pSummaryJson, pLogTrace) != 0) tjsonDelete(pLogTrace);
|
if (tjsonAddItemToArray(pSummaryJson, pLogTrace) != 0) tjsonDelete(pLogTrace);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -193,37 +193,14 @@ void MonitorTest::GetDiskInfo(SMonInfo *pMonitor, SMonDiskInfo *pInfo) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void MonitorTest::AddLogInfo1() {
|
void MonitorTest::AddLogInfo1() {
|
||||||
SMonLogItem log1 = {0};
|
monRecordLog(taosGetTimestampMs(), DEBUG_INFO, "1 -------------------------- a");
|
||||||
log1.ts = taosGetTimestampMs();
|
monRecordLog(taosGetTimestampMs(), DEBUG_ERROR, "1 ------------------------ b");
|
||||||
log1.level = MON_LEVEL_INFO;
|
monRecordLog(taosGetTimestampMs(), DEBUG_DEBUG, "1 ------- c");
|
||||||
strcpy(log1.content, "1 -------------------------- a");
|
|
||||||
monAddLogItem(&log1);
|
|
||||||
|
|
||||||
SMonLogItem log2 = {0};
|
|
||||||
log2.ts = taosGetTimestampMs();
|
|
||||||
log2.level = MON_LEVEL_ERROR;
|
|
||||||
strcpy(log2.content, "1 ------------------------ b");
|
|
||||||
monAddLogItem(&log2);
|
|
||||||
|
|
||||||
SMonLogItem log3 = {0};
|
|
||||||
log3.ts = taosGetTimestampMs();
|
|
||||||
log3.level = MON_LEVEL_DEBUG;
|
|
||||||
strcpy(log3.content, "1 ------- c");
|
|
||||||
monAddLogItem(&log3);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void MonitorTest::AddLogInfo2() {
|
void MonitorTest::AddLogInfo2() {
|
||||||
SMonLogItem log1;
|
monRecordLog(taosGetTimestampMs(), DEBUG_ERROR, "2 ------- a");
|
||||||
log1.ts = taosGetTimestampMs();
|
monRecordLog(taosGetTimestampMs(), DEBUG_ERROR, "2 ------- b");
|
||||||
log1.level = MON_LEVEL_ERROR;
|
|
||||||
strcpy(log1.content, "2 ------- a");
|
|
||||||
monAddLogItem(&log1);
|
|
||||||
|
|
||||||
SMonLogItem log2;
|
|
||||||
log2.ts = taosGetTimestampMs();
|
|
||||||
log2.level = MON_LEVEL_ERROR;
|
|
||||||
strcpy(log2.content, "2 ------- b");
|
|
||||||
monAddLogItem(&log2);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(MonitorTest, 01_Full) {
|
TEST_F(MonitorTest, 01_Full) {
|
||||||
|
|
|
@ -29,43 +29,41 @@ extern "C" {
|
||||||
#include "tlog.h"
|
#include "tlog.h"
|
||||||
#include "ttimer.h"
|
#include "ttimer.h"
|
||||||
|
|
||||||
extern int32_t sDebugFlag;
|
#define sFatal(...) \
|
||||||
|
{ \
|
||||||
#define sFatal(...) \
|
if (sDebugFlag & DEBUG_FATAL) { \
|
||||||
{ \
|
taosPrintLog("SYN FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); \
|
||||||
if (sDebugFlag & DEBUG_FATAL) { \
|
} \
|
||||||
taosPrintLog("SYN FATAL ", sDebugFlag, __VA_ARGS__); \
|
|
||||||
} \
|
|
||||||
}
|
}
|
||||||
#define sError(...) \
|
#define sError(...) \
|
||||||
{ \
|
{ \
|
||||||
if (sDebugFlag & DEBUG_ERROR) { \
|
if (sDebugFlag & DEBUG_ERROR) { \
|
||||||
taosPrintLog("SYN ERROR ", sDebugFlag, __VA_ARGS__); \
|
taosPrintLog("SYN ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); \
|
||||||
} \
|
} \
|
||||||
}
|
}
|
||||||
#define sWarn(...) \
|
#define sWarn(...) \
|
||||||
{ \
|
{ \
|
||||||
if (sDebugFlag & DEBUG_WARN) { \
|
if (sDebugFlag & DEBUG_WARN) { \
|
||||||
taosPrintLog("SYN WARN ", sDebugFlag, __VA_ARGS__); \
|
taosPrintLog("SYN WARN ", DEBUG_WARN, 255, __VA_ARGS__); \
|
||||||
} \
|
} \
|
||||||
}
|
}
|
||||||
#define sInfo(...) \
|
#define sInfo(...) \
|
||||||
{ \
|
{ \
|
||||||
if (sDebugFlag & DEBUG_INFO) { \
|
if (sDebugFlag & DEBUG_INFO) { \
|
||||||
taosPrintLog("SYN INFO ", sDebugFlag, __VA_ARGS__); \
|
taosPrintLog("SYN INFO ", DEBUG_INFO, 255, __VA_ARGS__); \
|
||||||
} \
|
} \
|
||||||
}
|
}
|
||||||
#define sDebug(...) \
|
#define sDebug(...) \
|
||||||
{ \
|
{ \
|
||||||
if (sDebugFlag & DEBUG_DEBUG) { \
|
if (sDebugFlag & DEBUG_DEBUG) { \
|
||||||
taosPrintLog("SYN DEBUG ", sDebugFlag, __VA_ARGS__); \
|
taosPrintLog("SYN DEBUG ", DEBUG_DEBUG, sDebugFlag, __VA_ARGS__); \
|
||||||
} \
|
} \
|
||||||
}
|
}
|
||||||
#define sTrace(...) \
|
#define sTrace(...) \
|
||||||
{ \
|
{ \
|
||||||
if (sDebugFlag & DEBUG_TRACE) { \
|
if (sDebugFlag & DEBUG_TRACE) { \
|
||||||
taosPrintLog("SYN TRACE ", sDebugFlag, __VA_ARGS__); \
|
taosPrintLog("SYN TRACE ", DEBUG_TRACE, sDebugFlag, __VA_ARGS__); \
|
||||||
} \
|
} \
|
||||||
}
|
}
|
||||||
|
|
||||||
struct SRaft;
|
struct SRaft;
|
||||||
|
|
|
@ -25,15 +25,13 @@
|
||||||
#include "thash.h"
|
#include "thash.h"
|
||||||
#include "tlog.h"
|
#include "tlog.h"
|
||||||
|
|
||||||
extern int32_t fsDebugFlag;
|
|
||||||
|
|
||||||
// For debug purpose
|
// For debug purpose
|
||||||
#define fFatal(...) { if (fsDebugFlag & DEBUG_FATAL) { taosPrintLog("TFS FATAL ", 255, __VA_ARGS__); }}
|
#define fFatal(...) { if (fsDebugFlag & DEBUG_FATAL) { taosPrintLog("TFS FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); }}
|
||||||
#define fError(...) { if (fsDebugFlag & DEBUG_ERROR) { taosPrintLog("TFS ERROR ", 255, __VA_ARGS__); }}
|
#define fError(...) { if (fsDebugFlag & DEBUG_ERROR) { taosPrintLog("TFS ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }}
|
||||||
#define fWarn(...) { if (fsDebugFlag & DEBUG_WARN) { taosPrintLog("TFS WARN ", 255, __VA_ARGS__); }}
|
#define fWarn(...) { if (fsDebugFlag & DEBUG_WARN) { taosPrintLog("TFS WARN ", DEBUG_WARN, 255, __VA_ARGS__); }}
|
||||||
#define fInfo(...) { if (fsDebugFlag & DEBUG_INFO) { taosPrintLog("TFS ", 255, __VA_ARGS__); }}
|
#define fInfo(...) { if (fsDebugFlag & DEBUG_INFO) { taosPrintLog("TFS ", DEBUG_INFO, 255, __VA_ARGS__); }}
|
||||||
#define fDebug(...) { if (fsDebugFlag & DEBUG_DEBUG) { taosPrintLog("TFS ", fsDebugFlag, __VA_ARGS__); }}
|
#define fDebug(...) { if (fsDebugFlag & DEBUG_DEBUG) { taosPrintLog("TFS ", DEBUG_DEBUG, fsDebugFlag, __VA_ARGS__); }}
|
||||||
#define fTrace(...) { if (fsDebugFlag & DEBUG_TRACE) { taosPrintLog("TFS ", fsDebugFlag, __VA_ARGS__); }}
|
#define fTrace(...) { if (fsDebugFlag & DEBUG_TRACE) { taosPrintLog("TFS ", DEBUG_TRACE, fsDebugFlag, __VA_ARGS__); }}
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
int32_t level;
|
int32_t level;
|
||||||
|
|
|
@ -22,44 +22,41 @@ extern "C" {
|
||||||
|
|
||||||
#include "tlog.h"
|
#include "tlog.h"
|
||||||
|
|
||||||
extern int32_t rpcDebugFlag;
|
#define tFatal(...) \
|
||||||
|
{ \
|
||||||
// rpcDebugFlag = 143
|
if (rpcDebugFlag & DEBUG_FATAL) { \
|
||||||
#define tFatal(...) \
|
taosPrintLog("RPC FATAL ", DEBUG_FATAL, rpcDebugFlag, __VA_ARGS__); \
|
||||||
{ \
|
} \
|
||||||
if (rpcDebugFlag & DEBUG_FATAL) { \
|
|
||||||
taosPrintLog("RPC FATAL ", rpcDebugFlag, __VA_ARGS__); \
|
|
||||||
} \
|
|
||||||
}
|
}
|
||||||
#define tError(...) \
|
#define tError(...) \
|
||||||
{ \
|
{ \
|
||||||
if (rpcDebugFlag & DEBUG_ERROR) { \
|
if (rpcDebugFlag & DEBUG_ERROR) { \
|
||||||
taosPrintLog("RPC ERROR ", rpcDebugFlag, __VA_ARGS__); \
|
taosPrintLog("RPC ERROR ", DEBUG_ERROR, rpcDebugFlag, __VA_ARGS__); \
|
||||||
} \
|
} \
|
||||||
}
|
}
|
||||||
#define tWarn(...) \
|
#define tWarn(...) \
|
||||||
{ \
|
{ \
|
||||||
if (rpcDebugFlag & DEBUG_WARN) { \
|
if (rpcDebugFlag & DEBUG_WARN) { \
|
||||||
taosPrintLog("RPC WARN ", rpcDebugFlag, __VA_ARGS__); \
|
taosPrintLog("RPC WARN ", DEBUG_WARN, rpcDebugFlag, __VA_ARGS__); \
|
||||||
} \
|
} \
|
||||||
}
|
}
|
||||||
#define tInfo(...) \
|
#define tInfo(...) \
|
||||||
{ \
|
{ \
|
||||||
if (rpcDebugFlag & DEBUG_INFO) { \
|
if (rpcDebugFlag & DEBUG_INFO) { \
|
||||||
taosPrintLog("RPC ", rpcDebugFlag, __VA_ARGS__); \
|
taosPrintLog("RPC ", DEBUG_INFO, rpcDebugFlag, __VA_ARGS__); \
|
||||||
} \
|
} \
|
||||||
}
|
}
|
||||||
#define tDebug(...) \
|
#define tDebug(...) \
|
||||||
{ \
|
{ \
|
||||||
if (rpcDebugFlag & DEBUG_DEBUG) { \
|
if (rpcDebugFlag & DEBUG_DEBUG) { \
|
||||||
taosPrintLog("RPC ", rpcDebugFlag, __VA_ARGS__); \
|
taosPrintLog("RPC ", DEBUG_DEBUG, rpcDebugFlag, __VA_ARGS__); \
|
||||||
} \
|
} \
|
||||||
}
|
}
|
||||||
#define tTrace(...) \
|
#define tTrace(...) \
|
||||||
{ \
|
{ \
|
||||||
if (rpcDebugFlag & DEBUG_TRACE) { \
|
if (rpcDebugFlag & DEBUG_TRACE) { \
|
||||||
taosPrintLog("RPC ", rpcDebugFlag, __VA_ARGS__); \
|
taosPrintLog("RPC ", DEBUG_TRACE, rpcDebugFlag, __VA_ARGS__); \
|
||||||
} \
|
} \
|
||||||
}
|
}
|
||||||
#define tDump(x, y) \
|
#define tDump(x, y) \
|
||||||
{ \
|
{ \
|
||||||
|
|
|
@ -148,7 +148,7 @@ class TransObj {
|
||||||
wDebugFlag = 0;
|
wDebugFlag = 0;
|
||||||
sDebugFlag = 0;
|
sDebugFlag = 0;
|
||||||
tsdbDebugFlag = 0;
|
tsdbDebugFlag = 0;
|
||||||
tscEmbeddedInUtil = 1;
|
tsLogEmbedded = 1;
|
||||||
tsAsyncLog = 0;
|
tsAsyncLog = 0;
|
||||||
|
|
||||||
std::string path = "/tmp/transport";
|
std::string path = "/tmp/transport";
|
||||||
|
|
|
@ -63,7 +63,7 @@ int32_t taosSendHttpReport(const char* server, uint16_t port, const char* pCont,
|
||||||
goto SEND_OVER;
|
goto SEND_OVER;
|
||||||
}
|
}
|
||||||
|
|
||||||
uInfo("send http to %s:%u, len:%d content: %s", server, port, contLen, pCont);
|
uTrace("send http to %s:%u, len:%d content: %s", server, port, contLen, pCont);
|
||||||
code = 0;
|
code = 0;
|
||||||
|
|
||||||
SEND_OVER:
|
SEND_OVER:
|
||||||
|
|
|
@ -66,13 +66,18 @@ typedef struct {
|
||||||
|
|
||||||
static int8_t tsLogInited = 0;
|
static int8_t tsLogInited = 0;
|
||||||
static SLogObj tsLogObj = {.fileNum = 1};
|
static SLogObj tsLogObj = {.fileNum = 1};
|
||||||
|
static int64_t tsAsyncLogLostLines = 0;
|
||||||
|
static int32_t tsWriteInterval = LOG_DEFAULT_INTERVAL;
|
||||||
|
|
||||||
int8_t tscEmbeddedInUtil = 0;
|
bool tsLogEmbedded = 0;
|
||||||
int32_t tsLogKeepDays = 0;
|
|
||||||
bool tsAsyncLog = true;
|
bool tsAsyncLog = true;
|
||||||
int32_t tsNumOfLogLines = 10000000;
|
int32_t tsNumOfLogLines = 10000000;
|
||||||
int64_t tsAsyncLogLostLines = 0;
|
int32_t tsLogKeepDays = 0;
|
||||||
int32_t tsWriteInterval = LOG_DEFAULT_INTERVAL;
|
LogFp tsLogFp = NULL;
|
||||||
|
int64_t tsNumOfErrorLogs = 0;
|
||||||
|
int64_t tsNumOfInfoLogs = 0;
|
||||||
|
int64_t tsNumOfDebugLogs = 0;
|
||||||
|
int64_t tsNumOfTraceLogs = 0;
|
||||||
|
|
||||||
// log
|
// log
|
||||||
int32_t dDebugFlag = 135;
|
int32_t dDebugFlag = 135;
|
||||||
|
@ -372,7 +377,27 @@ static int32_t taosOpenLogFile(char *fn, int32_t maxLines, int32_t maxFileNum) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void taosPrintLog(const char *flags, int32_t dflag, const char *format, ...) {
|
static void taosUpdateLogNums(ELogLevel level) {
|
||||||
|
switch (level) {
|
||||||
|
case DEBUG_ERROR:
|
||||||
|
atomic_add_fetch_64(&tsNumOfErrorLogs, 1);
|
||||||
|
break;
|
||||||
|
case DEBUG_INFO:
|
||||||
|
atomic_add_fetch_64(&tsNumOfInfoLogs, 1);
|
||||||
|
break;
|
||||||
|
case DEBUG_DEBUG:
|
||||||
|
atomic_add_fetch_64(&tsNumOfDebugLogs, 1);
|
||||||
|
break;
|
||||||
|
case DEBUG_DUMP:
|
||||||
|
case DEBUG_TRACE:
|
||||||
|
atomic_add_fetch_64(&tsNumOfTraceLogs, 1);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void taosPrintLog(const char *flags, ELogLevel level, int32_t dflag, const char *format, ...) {
|
||||||
if (!osLogSpaceAvailable()) return;
|
if (!osLogSpaceAvailable()) return;
|
||||||
|
|
||||||
va_list argpointer;
|
va_list argpointer;
|
||||||
|
@ -410,6 +435,7 @@ void taosPrintLog(const char *flags, int32_t dflag, const char *format, ...) {
|
||||||
buffer[len] = 0;
|
buffer[len] = 0;
|
||||||
|
|
||||||
if ((dflag & DEBUG_FILE) && tsLogObj.logHandle && tsLogObj.logHandle->pFile != NULL) {
|
if ((dflag & DEBUG_FILE) && tsLogObj.logHandle && tsLogObj.logHandle->pFile != NULL) {
|
||||||
|
taosUpdateLogNums(level);
|
||||||
if (tsAsyncLog) {
|
if (tsAsyncLog) {
|
||||||
taosPushLogBuffer(tsLogObj.logHandle, buffer, len);
|
taosPushLogBuffer(tsLogObj.logHandle, buffer, len);
|
||||||
} else {
|
} else {
|
||||||
|
@ -423,11 +449,14 @@ void taosPrintLog(const char *flags, int32_t dflag, const char *format, ...) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dflag & DEBUG_SCREEN) write(1, buffer, (uint32_t)len);
|
if (dflag & DEBUG_SCREEN) {
|
||||||
|
write(1, buffer, (uint32_t)len);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void taosDumpData(unsigned char *msg, int32_t len) {
|
void taosDumpData(unsigned char *msg, int32_t len) {
|
||||||
if (!osLogSpaceAvailable()) return;
|
if (!osLogSpaceAvailable()) return;
|
||||||
|
taosUpdateLogNums(DEBUG_DUMP);
|
||||||
|
|
||||||
char temp[256];
|
char temp[256];
|
||||||
int32_t i, pos = 0, c = 0;
|
int32_t i, pos = 0, c = 0;
|
||||||
|
@ -449,7 +478,7 @@ void taosDumpData(unsigned char *msg, int32_t len) {
|
||||||
taosWriteFile(tsLogObj.logHandle->pFile, temp, (uint32_t)pos);
|
taosWriteFile(tsLogObj.logHandle->pFile, temp, (uint32_t)pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
void taosPrintLongString(const char *flags, int32_t dflag, const char *format, ...) {
|
void taosPrintLongString(const char *flags, ELogLevel level, int32_t dflag, const char *format, ...) {
|
||||||
if (!osLogSpaceAvailable()) return;
|
if (!osLogSpaceAvailable()) return;
|
||||||
|
|
||||||
va_list argpointer;
|
va_list argpointer;
|
||||||
|
@ -477,6 +506,7 @@ void taosPrintLongString(const char *flags, int32_t dflag, const char *format, .
|
||||||
buffer[len] = 0;
|
buffer[len] = 0;
|
||||||
|
|
||||||
if ((dflag & DEBUG_FILE) && tsLogObj.logHandle && tsLogObj.logHandle->pFile != NULL) {
|
if ((dflag & DEBUG_FILE) && tsLogObj.logHandle && tsLogObj.logHandle->pFile != NULL) {
|
||||||
|
taosUpdateLogNums(level);
|
||||||
if (tsAsyncLog) {
|
if (tsAsyncLog) {
|
||||||
taosPushLogBuffer(tsLogObj.logHandle, buffer, len);
|
taosPushLogBuffer(tsLogObj.logHandle, buffer, len);
|
||||||
} else {
|
} else {
|
||||||
|
@ -490,7 +520,9 @@ void taosPrintLongString(const char *flags, int32_t dflag, const char *format, .
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dflag & DEBUG_SCREEN) write(1, buffer, (uint32_t)len);
|
if (dflag & DEBUG_SCREEN) {
|
||||||
|
write(1, buffer, (uint32_t)len);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void taosCloseLogByFd(TdFilePtr pFile) {
|
static void taosCloseLogByFd(TdFilePtr pFile) {
|
||||||
|
|
|
@ -19,41 +19,41 @@
|
||||||
#include "tlog.h"
|
#include "tlog.h"
|
||||||
#include "tsched.h"
|
#include "tsched.h"
|
||||||
|
|
||||||
#define tmrFatal(...) \
|
#define tmrFatal(...) \
|
||||||
{ \
|
{ \
|
||||||
if (tmrDebugFlag & DEBUG_FATAL) { \
|
if (tmrDebugFlag & DEBUG_FATAL) { \
|
||||||
taosPrintLog("TMR FATAL ", tmrDebugFlag, __VA_ARGS__); \
|
taosPrintLog("TMR FATAL ", DEBUG_FATAL, tmrDebugFlag, __VA_ARGS__); \
|
||||||
} \
|
} \
|
||||||
}
|
}
|
||||||
#define tmrError(...) \
|
#define tmrError(...) \
|
||||||
{ \
|
{ \
|
||||||
if (tmrDebugFlag & DEBUG_ERROR) { \
|
if (tmrDebugFlag & DEBUG_ERROR) { \
|
||||||
taosPrintLog("TMR ERROR ", tmrDebugFlag, __VA_ARGS__); \
|
taosPrintLog("TMR ERROR ", DEBUG_ERROR, tmrDebugFlag, __VA_ARGS__); \
|
||||||
} \
|
} \
|
||||||
}
|
}
|
||||||
#define tmrWarn(...) \
|
#define tmrWarn(...) \
|
||||||
{ \
|
{ \
|
||||||
if (tmrDebugFlag & DEBUG_WARN) { \
|
if (tmrDebugFlag & DEBUG_WARN) { \
|
||||||
taosPrintLog("TMR WARN ", tmrDebugFlag, __VA_ARGS__); \
|
taosPrintLog("TMR WARN ", DEBUG_WARN, tmrDebugFlag, __VA_ARGS__); \
|
||||||
} \
|
} \
|
||||||
}
|
}
|
||||||
#define tmrInfo(...) \
|
#define tmrInfo(...) \
|
||||||
{ \
|
{ \
|
||||||
if (tmrDebugFlag & DEBUG_INFO) { \
|
if (tmrDebugFlag & DEBUG_INFO) { \
|
||||||
taosPrintLog("TMR ", tmrDebugFlag, __VA_ARGS__); \
|
taosPrintLog("TMR ", DEBUG_INFO, tmrDebugFlag, __VA_ARGS__); \
|
||||||
} \
|
} \
|
||||||
}
|
}
|
||||||
#define tmrDebug(...) \
|
#define tmrDebug(...) \
|
||||||
{ \
|
{ \
|
||||||
if (tmrDebugFlag & DEBUG_DEBUG) { \
|
if (tmrDebugFlag & DEBUG_DEBUG) { \
|
||||||
taosPrintLog("TMR ", tmrDebugFlag, __VA_ARGS__); \
|
taosPrintLog("TMR ", DEBUG_DEBUG, tmrDebugFlag, __VA_ARGS__); \
|
||||||
} \
|
} \
|
||||||
}
|
}
|
||||||
#define tmrTrace(...) \
|
#define tmrTrace(...) \
|
||||||
{ \
|
{ \
|
||||||
if (tmrDebugFlag & DEBUG_TRACE) { \
|
if (tmrDebugFlag & DEBUG_TRACE) { \
|
||||||
taosPrintLog("TMR ", tmrDebugFlag, __VA_ARGS__); \
|
taosPrintLog("TMR ", DEBUG_TRACE, tmrDebugFlag, __VA_ARGS__); \
|
||||||
} \
|
} \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define TIMER_STATE_WAITING 0
|
#define TIMER_STATE_WAITING 0
|
||||||
|
|
Loading…
Reference in New Issue