mirror of https://github.com/milvus-io/milvus.git
Implement new log macro (#4410)
* save Signed-off-by: Xiangyu Wang <xiangyu.wang@zilliz.com> * implement new log macro Signed-off-by: Xiangyu Wang <xiangyu.wang@zilliz.com> * support gettid() with glibc 2.0 Signed-off-by: Xiangyu Wang <xiangyu.wang@zilliz.com> * fix compile warning Signed-off-by: Xiangyu Wang <xiangyu.wang@zilliz.com>pull/4399/head
parent
0406f4b438
commit
1b14664fa4
|
@ -0,0 +1,119 @@
|
|||
// Copyright (C) 2019-2020 Zilliz. All rights reserved.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
|
||||
// with the License. You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software distributed under the License
|
||||
// is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
|
||||
// or implied. See the License for the specific language governing permissions and limitations under the License.
|
||||
|
||||
#pragma once
|
||||
|
||||
/*
|
||||
* Please use LOG_MODULE_LEVEL_C macro in member function of class
|
||||
* and LOG_MODULE_LEVEL_ macro in other functions.
|
||||
*/
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
#define SERVER_MODULE_NAME "SERVER"
|
||||
#define SERVER_MODULE_CLASS_FUNCTION \
|
||||
LogOut("[%s][%s::%s][%s] ", SERVER_MODULE_NAME, (typeid(*this).name()), __FUNCTION__, GetThreadName().c_str())
|
||||
#define SERVER_MODULE_FUNCTION LogOut("[%s][%s][%s] ", SERVER_MODULE_NAME, __FUNCTION__, GetThreadName().c_str())
|
||||
|
||||
#define LOG_SERVER_TRACE_C LOG(TRACE) << SERVER_MODULE_CLASS_FUNCTION
|
||||
#define LOG_SERVER_DEBUG_C LOG(DEBUG) << SERVER_MODULE_CLASS_FUNCTION
|
||||
#define LOG_SERVER_INFO_C LOG(INFO) << SERVER_MODULE_CLASS_FUNCTION
|
||||
#define LOG_SERVER_WARNING_C LOG(WARNING) << SERVER_MODULE_CLASS_FUNCTION
|
||||
#define LOG_SERVER_ERROR_C LOG(ERROR) << SERVER_MODULE_CLASS_FUNCTION
|
||||
#define LOG_SERVER_FATAL_C LOG(FATAL) << SERVER_MODULE_CLASS_FUNCTION
|
||||
|
||||
#define LOG_SERVER_TRACE_ LOG(TRACE) << SERVER_MODULE_FUNCTION
|
||||
#define LOG_SERVER_DEBUG_ LOG(DEBUG) << SERVER_MODULE_FUNCTION
|
||||
#define LOG_SERVER_INFO_ LOG(INFO) << SERVER_MODULE_FUNCTION
|
||||
#define LOG_SERVER_WARNING_ LOG(WARNING) << SERVER_MODULE_FUNCTION
|
||||
#define LOG_SERVER_ERROR_ LOG(ERROR) << SERVER_MODULE_FUNCTION
|
||||
#define LOG_SERVER_FATAL_ LOG(FATAL) << SERVER_MODULE_FUNCTION
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
#define ENGINE_MODULE_NAME "ENGINE"
|
||||
#define ENGINE_MODULE_CLASS_FUNCTION \
|
||||
LogOut("[%s][%s::%s][%s] ", ENGINE_MODULE_NAME, (typeid(*this).name()), __FUNCTION__, GetThreadName().c_str())
|
||||
#define ENGINE_MODULE_FUNCTION LogOut("[%s][%s][%s] ", ENGINE_MODULE_NAME, __FUNCTION__, GetThreadName().c_str())
|
||||
|
||||
#define LOG_ENGINE_TRACE_C LOG(TRACE) << ENGINE_MODULE_CLASS_FUNCTION
|
||||
#define LOG_ENGINE_DEBUG_C LOG(DEBUG) << ENGINE_MODULE_CLASS_FUNCTION
|
||||
#define LOG_ENGINE_INFO_C LOG(INFO) << ENGINE_MODULE_CLASS_FUNCTION
|
||||
#define LOG_ENGINE_WARNING_C LOG(WARNING) << ENGINE_MODULE_CLASS_FUNCTION
|
||||
#define LOG_ENGINE_ERROR_C LOG(ERROR) << ENGINE_MODULE_CLASS_FUNCTION
|
||||
#define LOG_ENGINE_FATAL_C LOG(FATAL) << ENGINE_MODULE_CLASS_FUNCTION
|
||||
|
||||
#define LOG_ENGINE_TRACE_ LOG(TRACE) << ENGINE_MODULE_FUNCTION
|
||||
#define LOG_ENGINE_DEBUG_ LOG(DEBUG) << ENGINE_MODULE_FUNCTION
|
||||
#define LOG_ENGINE_INFO_ LOG(INFO) << ENGINE_MODULE_FUNCTION
|
||||
#define LOG_ENGINE_WARNING_ LOG(WARNING) << ENGINE_MODULE_FUNCTION
|
||||
#define LOG_ENGINE_ERROR_ LOG(ERROR) << ENGINE_MODULE_FUNCTION
|
||||
#define LOG_ENGINE_FATAL_ LOG(FATAL) << ENGINE_MODULE_FUNCTION
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
#define WRAPPER_MODULE_NAME "WRAPPER"
|
||||
#define WRAPPER_MODULE_CLASS_FUNCTION \
|
||||
LogOut("[%s][%s::%s][%s] ", WRAPPER_MODULE_NAME, (typeid(*this).name()), __FUNCTION__, GetThreadName().c_str())
|
||||
#define WRAPPER_MODULE_FUNCTION LogOut("[%s][%s][%s] ", WRAPPER_MODULE_NAME, __FUNCTION__, GetThreadName().c_str())
|
||||
|
||||
#define LOG_WRAPPER_TRACE_C LOG(TRACE) << WRAPPER_MODULE_CLASS_FUNCTION
|
||||
#define LOG_WRAPPER_DEBUG_C LOG(DEBUG) << WRAPPER_MODULE_CLASS_FUNCTION
|
||||
#define LOG_WRAPPER_INFO_C LOG(INFO) << WRAPPER_MODULE_CLASS_FUNCTION
|
||||
#define LOG_WRAPPER_WARNING_C LOG(WARNING) << WRAPPER_MODULE_CLASS_FUNCTION
|
||||
#define LOG_WRAPPER_ERROR_C LOG(ERROR) << WRAPPER_MODULE_CLASS_FUNCTION
|
||||
#define LOG_WRAPPER_FATAL_C LOG(FATAL) << WRAPPER_MODULE_CLASS_FUNCTION
|
||||
|
||||
#define LOG_WRAPPER_TRACE_ LOG(TRACE) << WRAPPER_MODULE_FUNCTION
|
||||
#define LOG_WRAPPER_DEBUG_ LOG(DEBUG) << WRAPPER_MODULE_FUNCTION
|
||||
#define LOG_WRAPPER_INFO_ LOG(INFO) << WRAPPER_MODULE_FUNCTION
|
||||
#define LOG_WRAPPER_WARNING_ LOG(WARNING) << WRAPPER_MODULE_FUNCTION
|
||||
#define LOG_WRAPPER_ERROR_ LOG(ERROR) << WRAPPER_MODULE_FUNCTION
|
||||
#define LOG_WRAPPER_FATAL_ LOG(FATAL) << WRAPPER_MODULE_FUNCTION
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
#define STORAGE_MODULE_NAME "STORAGE"
|
||||
#define STORAGE_MODULE_CLASS_FUNCTION \
|
||||
LogOut("[%s][%s::%s][%s] ", STORAGE_MODULE_NAME, (typeid(*this).name()), __FUNCTION__, GetThreadName().c_str())
|
||||
#define STORAGE_MODULE_FUNCTION LogOut("[%s][%s][%s] ", STORAGE_MODULE_NAME, __FUNCTION__, GetThreadName().c_str())
|
||||
|
||||
#define LOG_STORAGE_TRACE_C LOG(TRACE) << STORAGE_MODULE_CLASS_FUNCTION
|
||||
#define LOG_STORAGE_DEBUG_C LOG(DEBUG) << STORAGE_MODULE_CLASS_FUNCTION
|
||||
#define LOG_STORAGE_INFO_C LOG(INFO) << STORAGE_MODULE_CLASS_FUNCTION
|
||||
#define LOG_STORAGE_WARNING_C LOG(WARNING) << STORAGE_MODULE_CLASS_FUNCTION
|
||||
#define LOG_STORAGE_ERROR_C LOG(ERROR) << STORAGE_MODULE_CLASS_FUNCTION
|
||||
#define LOG_STORAGE_FATAL_C LOG(FATAL) << STORAGE_MODULE_CLASS_FUNCTION
|
||||
|
||||
#define LOG_STORAGE_TRACE_ LOG(TRACE) << STORAGE_MODULE_FUNCTION
|
||||
#define LOG_STORAGE_DEBUG_ LOG(DEBUG) << STORAGE_MODULE_FUNCTION
|
||||
#define LOG_STORAGE_INFO_ LOG(INFO) << STORAGE_MODULE_FUNCTION
|
||||
#define LOG_STORAGE_WARNING_ LOG(WARNING) << STORAGE_MODULE_FUNCTION
|
||||
#define LOG_STORAGE_ERROR_ LOG(ERROR) << STORAGE_MODULE_FUNCTION
|
||||
#define LOG_STORAGE_FATAL_ LOG(FATAL) << STORAGE_MODULE_FUNCTION
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
#define WAL_MODULE_NAME "WAL"
|
||||
#define WAL_MODULE_CLASS_FUNCTION \
|
||||
LogOut("[%s][%s::%s][%s] ", WAL_MODULE_NAME, (typeid(*this).name()), __FUNCTION__, GetThreadName().c_str())
|
||||
#define WAL_MODULE_FUNCTION LogOut("[%s][%s][%s] ", WAL_MODULE_NAME, __FUNCTION__, GetThreadName().c_str())
|
||||
|
||||
#define LOG_WAL_TRACE_C LOG(TRACE) << WAL_MODULE_CLASS_FUNCTION
|
||||
#define LOG_WAL_DEBUG_C LOG(DEBUG) << WAL_MODULE_CLASS_FUNCTION
|
||||
#define LOG_WAL_INFO_C LOG(INFO) << WAL_MODULE_CLASS_FUNCTION
|
||||
#define LOG_WAL_WARNING_C LOG(WARNING) << WAL_MODULE_CLASS_FUNCTION
|
||||
#define LOG_WAL_ERROR_C LOG(ERROR) << WAL_MODULE_CLASS_FUNCTION
|
||||
#define LOG_WAL_FATAL_C LOG(FATAL) << WAL_MODULE_CLASS_FUNCTION
|
||||
|
||||
#define LOG_WAL_TRACE_ LOG(TRACE) << WAL_MODULE_FUNCTION
|
||||
#define LOG_WAL_DEBUG_ LOG(DEBUG) << WAL_MODULE_FUNCTION
|
||||
#define LOG_WAL_INFO_ LOG(INFO) << WAL_MODULE_FUNCTION
|
||||
#define LOG_WAL_WARNING_ LOG(WARNING) << WAL_MODULE_FUNCTION
|
||||
#define LOG_WAL_ERROR_ LOG(ERROR) << WAL_MODULE_FUNCTION
|
||||
#define LOG_WAL_FATAL_ LOG(FATAL) << WAL_MODULE_FUNCTION
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
@ -11,9 +11,11 @@
|
|||
|
||||
#include "log/Log.h"
|
||||
|
||||
#include <chrono>
|
||||
#include <cstdarg>
|
||||
#include <cstdio>
|
||||
#include <memory>
|
||||
#include <stdexcept>
|
||||
#include <string>
|
||||
|
||||
namespace milvus {
|
||||
|
@ -51,4 +53,55 @@ GetThreadName() {
|
|||
return thread_name;
|
||||
}
|
||||
|
||||
int64_t
|
||||
get_now_timestamp() {
|
||||
auto now = std::chrono::system_clock::now().time_since_epoch();
|
||||
return std::chrono::duration_cast<std::chrono::seconds>(now).count();
|
||||
}
|
||||
|
||||
int64_t
|
||||
get_system_boottime() {
|
||||
FILE* uptime = fopen("/proc/uptime", "r");
|
||||
float since_sys_boot, _;
|
||||
auto ret = fscanf(uptime, "%f %f", &since_sys_boot, &_);
|
||||
fclose(uptime);
|
||||
if (ret != 2) {
|
||||
throw std::runtime_error("read /proc/uptime failed.");
|
||||
}
|
||||
return static_cast<int64_t>(since_sys_boot);
|
||||
}
|
||||
|
||||
int64_t
|
||||
get_thread_starttime() {
|
||||
int64_t tid = gettid();
|
||||
int64_t pid = getpid();
|
||||
char filename[256];
|
||||
snprintf(filename, sizeof(filename), "/proc/%ld/task/%ld/stat", pid, tid);
|
||||
|
||||
int64_t val = 0;
|
||||
char comm[16], state;
|
||||
FILE* thread_stat = fopen(filename, "r");
|
||||
auto ret = fscanf(thread_stat, "%ld %s %s ", &val, comm, &state);
|
||||
for (auto i = 4; i < 23; i++) {
|
||||
ret = fscanf(thread_stat, "%ld ", &val);
|
||||
if (i == 22) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
fclose(thread_stat);
|
||||
if (ret != 1) {
|
||||
throw std::runtime_error("read " + std::string(filename) + " failed.");
|
||||
}
|
||||
return val / sysconf(_SC_CLK_TCK);
|
||||
}
|
||||
|
||||
int64_t
|
||||
get_thread_start_timestamp() {
|
||||
try {
|
||||
return get_now_timestamp() - get_system_boottime() + get_thread_starttime();
|
||||
} catch (...) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace milvus
|
||||
|
|
|
@ -13,116 +13,55 @@
|
|||
|
||||
#include <string>
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <unistd.h>
|
||||
#include "easyloggingpp/easylogging++.h"
|
||||
|
||||
#include "log/DeprecatedLog.h"
|
||||
|
||||
namespace milvus {
|
||||
|
||||
/*
|
||||
* Please use LOG_MODULE_LEVEL_C macro in member function of class
|
||||
* and LOG_MODULE_LEVEL_ macro in other functions.
|
||||
*/
|
||||
#if __GLIBC__ == 2 && __GLIBC_MINOR__ < 30
|
||||
#include <sys/syscall.h>
|
||||
#define gettid() syscall(SYS_gettid)
|
||||
#endif
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
#define SERVER_MODULE_NAME "SERVER"
|
||||
#define SERVER_MODULE_CLASS_FUNCTION \
|
||||
LogOut("[%s][%s::%s][%s] ", SERVER_MODULE_NAME, (typeid(*this).name()), __FUNCTION__, GetThreadName().c_str())
|
||||
#define SERVER_MODULE_FUNCTION LogOut("[%s][%s][%s] ", SERVER_MODULE_NAME, __FUNCTION__, GetThreadName().c_str())
|
||||
// Log message format: %timestamp | %request_id | %level | %collection_name | %client_id | %client_tag | %client_ipport
|
||||
// | %thread_id | %thread_start_timestamp | %command_tag | %module | %error_code | %message
|
||||
|
||||
#define LOG_SERVER_TRACE_C LOG(TRACE) << SERVER_MODULE_CLASS_FUNCTION
|
||||
#define LOG_SERVER_DEBUG_C LOG(DEBUG) << SERVER_MODULE_CLASS_FUNCTION
|
||||
#define LOG_SERVER_INFO_C LOG(INFO) << SERVER_MODULE_CLASS_FUNCTION
|
||||
#define LOG_SERVER_WARNING_C LOG(WARNING) << SERVER_MODULE_CLASS_FUNCTION
|
||||
#define LOG_SERVER_ERROR_C LOG(ERROR) << SERVER_MODULE_CLASS_FUNCTION
|
||||
#define LOG_SERVER_FATAL_C LOG(FATAL) << SERVER_MODULE_CLASS_FUNCTION
|
||||
#define VAR_REQUEST_ID (context->request_id())
|
||||
#define VAR_COLLECTION_NAME (context->collection_name())
|
||||
#define VAR_CLIENT_ID ("")
|
||||
#define VAR_CLIENT_TAG (context->client_tag())
|
||||
#define VAR_CLIENT_IPPORT (context->client_ipport())
|
||||
#define VAR_THREAD_ID (gettid())
|
||||
#define VAR_THREAD_START_TIMESTAMP (get_thread_start_timestamp())
|
||||
#define VAR_COMMAND_TAG (context->command_tag())
|
||||
|
||||
#define LOG_SERVER_TRACE_ LOG(TRACE) << SERVER_MODULE_FUNCTION
|
||||
#define LOG_SERVER_DEBUG_ LOG(DEBUG) << SERVER_MODULE_FUNCTION
|
||||
#define LOG_SERVER_INFO_ LOG(INFO) << SERVER_MODULE_FUNCTION
|
||||
#define LOG_SERVER_WARNING_ LOG(WARNING) << SERVER_MODULE_FUNCTION
|
||||
#define LOG_SERVER_ERROR_ LOG(ERROR) << SERVER_MODULE_FUNCTION
|
||||
#define LOG_SERVER_FATAL_ LOG(FATAL) << SERVER_MODULE_FUNCTION
|
||||
// Use this macro whenever possible
|
||||
// Depends variables: context Context
|
||||
#define MLOG(level, module, error_code) \
|
||||
LOG(level) << " | " << VAR_REQUEST_ID << " | " << #level << " | " << VAR_COLLECTION_NAME << " | " << VAR_CLIENT_ID \
|
||||
<< " | " << VAR_CLIENT_TAG << " | " << VAR_CLIENT_IPPORT << " | " << VAR_THREAD_ID << " | " \
|
||||
<< VAR_THREAD_START_TIMESTAMP << " | " << VAR_COMMAND_TAG << " | " << #module << " | " << error_code \
|
||||
<< " | "
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
#define ENGINE_MODULE_NAME "ENGINE"
|
||||
#define ENGINE_MODULE_CLASS_FUNCTION \
|
||||
LogOut("[%s][%s::%s][%s] ", ENGINE_MODULE_NAME, (typeid(*this).name()), __FUNCTION__, GetThreadName().c_str())
|
||||
#define ENGINE_MODULE_FUNCTION LogOut("[%s][%s][%s] ", ENGINE_MODULE_NAME, __FUNCTION__, GetThreadName().c_str())
|
||||
// Use in some background process only
|
||||
#define MLOG_(level, module, error_code) \
|
||||
LOG(level) << " | " \
|
||||
<< "" \
|
||||
<< " | " << #level << " | " \
|
||||
<< "" \
|
||||
<< " | " \
|
||||
<< "" \
|
||||
<< " | " \
|
||||
<< "" \
|
||||
<< " | " \
|
||||
<< "" \
|
||||
<< " | " << VAR_THREAD_ID << " | " << VAR_THREAD_START_TIMESTAMP << " | " \
|
||||
<< "" \
|
||||
<< " | " << #module << " | " << error_code << " | "
|
||||
|
||||
#define LOG_ENGINE_TRACE_C LOG(TRACE) << ENGINE_MODULE_CLASS_FUNCTION
|
||||
#define LOG_ENGINE_DEBUG_C LOG(DEBUG) << ENGINE_MODULE_CLASS_FUNCTION
|
||||
#define LOG_ENGINE_INFO_C LOG(INFO) << ENGINE_MODULE_CLASS_FUNCTION
|
||||
#define LOG_ENGINE_WARNING_C LOG(WARNING) << ENGINE_MODULE_CLASS_FUNCTION
|
||||
#define LOG_ENGINE_ERROR_C LOG(ERROR) << ENGINE_MODULE_CLASS_FUNCTION
|
||||
#define LOG_ENGINE_FATAL_C LOG(FATAL) << ENGINE_MODULE_CLASS_FUNCTION
|
||||
|
||||
#define LOG_ENGINE_TRACE_ LOG(TRACE) << ENGINE_MODULE_FUNCTION
|
||||
#define LOG_ENGINE_DEBUG_ LOG(DEBUG) << ENGINE_MODULE_FUNCTION
|
||||
#define LOG_ENGINE_INFO_ LOG(INFO) << ENGINE_MODULE_FUNCTION
|
||||
#define LOG_ENGINE_WARNING_ LOG(WARNING) << ENGINE_MODULE_FUNCTION
|
||||
#define LOG_ENGINE_ERROR_ LOG(ERROR) << ENGINE_MODULE_FUNCTION
|
||||
#define LOG_ENGINE_FATAL_ LOG(FATAL) << ENGINE_MODULE_FUNCTION
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
#define WRAPPER_MODULE_NAME "WRAPPER"
|
||||
#define WRAPPER_MODULE_CLASS_FUNCTION \
|
||||
LogOut("[%s][%s::%s][%s] ", WRAPPER_MODULE_NAME, (typeid(*this).name()), __FUNCTION__, GetThreadName().c_str())
|
||||
#define WRAPPER_MODULE_FUNCTION LogOut("[%s][%s][%s] ", WRAPPER_MODULE_NAME, __FUNCTION__, GetThreadName().c_str())
|
||||
|
||||
#define LOG_WRAPPER_TRACE_C LOG(TRACE) << WRAPPER_MODULE_CLASS_FUNCTION
|
||||
#define LOG_WRAPPER_DEBUG_C LOG(DEBUG) << WRAPPER_MODULE_CLASS_FUNCTION
|
||||
#define LOG_WRAPPER_INFO_C LOG(INFO) << WRAPPER_MODULE_CLASS_FUNCTION
|
||||
#define LOG_WRAPPER_WARNING_C LOG(WARNING) << WRAPPER_MODULE_CLASS_FUNCTION
|
||||
#define LOG_WRAPPER_ERROR_C LOG(ERROR) << WRAPPER_MODULE_CLASS_FUNCTION
|
||||
#define LOG_WRAPPER_FATAL_C LOG(FATAL) << WRAPPER_MODULE_CLASS_FUNCTION
|
||||
|
||||
#define LOG_WRAPPER_TRACE_ LOG(TRACE) << WRAPPER_MODULE_FUNCTION
|
||||
#define LOG_WRAPPER_DEBUG_ LOG(DEBUG) << WRAPPER_MODULE_FUNCTION
|
||||
#define LOG_WRAPPER_INFO_ LOG(INFO) << WRAPPER_MODULE_FUNCTION
|
||||
#define LOG_WRAPPER_WARNING_ LOG(WARNING) << WRAPPER_MODULE_FUNCTION
|
||||
#define LOG_WRAPPER_ERROR_ LOG(ERROR) << WRAPPER_MODULE_FUNCTION
|
||||
#define LOG_WRAPPER_FATAL_ LOG(FATAL) << WRAPPER_MODULE_FUNCTION
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
#define STORAGE_MODULE_NAME "STORAGE"
|
||||
#define STORAGE_MODULE_CLASS_FUNCTION \
|
||||
LogOut("[%s][%s::%s][%s] ", STORAGE_MODULE_NAME, (typeid(*this).name()), __FUNCTION__, GetThreadName().c_str())
|
||||
#define STORAGE_MODULE_FUNCTION LogOut("[%s][%s][%s] ", STORAGE_MODULE_NAME, __FUNCTION__, GetThreadName().c_str())
|
||||
|
||||
#define LOG_STORAGE_TRACE_C LOG(TRACE) << STORAGE_MODULE_CLASS_FUNCTION
|
||||
#define LOG_STORAGE_DEBUG_C LOG(DEBUG) << STORAGE_MODULE_CLASS_FUNCTION
|
||||
#define LOG_STORAGE_INFO_C LOG(INFO) << STORAGE_MODULE_CLASS_FUNCTION
|
||||
#define LOG_STORAGE_WARNING_C LOG(WARNING) << STORAGE_MODULE_CLASS_FUNCTION
|
||||
#define LOG_STORAGE_ERROR_C LOG(ERROR) << STORAGE_MODULE_CLASS_FUNCTION
|
||||
#define LOG_STORAGE_FATAL_C LOG(FATAL) << STORAGE_MODULE_CLASS_FUNCTION
|
||||
|
||||
#define LOG_STORAGE_TRACE_ LOG(TRACE) << STORAGE_MODULE_FUNCTION
|
||||
#define LOG_STORAGE_DEBUG_ LOG(DEBUG) << STORAGE_MODULE_FUNCTION
|
||||
#define LOG_STORAGE_INFO_ LOG(INFO) << STORAGE_MODULE_FUNCTION
|
||||
#define LOG_STORAGE_WARNING_ LOG(WARNING) << STORAGE_MODULE_FUNCTION
|
||||
#define LOG_STORAGE_ERROR_ LOG(ERROR) << STORAGE_MODULE_FUNCTION
|
||||
#define LOG_STORAGE_FATAL_ LOG(FATAL) << STORAGE_MODULE_FUNCTION
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
#define WAL_MODULE_NAME "WAL"
|
||||
#define WAL_MODULE_CLASS_FUNCTION \
|
||||
LogOut("[%s][%s::%s][%s] ", WAL_MODULE_NAME, (typeid(*this).name()), __FUNCTION__, GetThreadName().c_str())
|
||||
#define WAL_MODULE_FUNCTION LogOut("[%s][%s][%s] ", WAL_MODULE_NAME, __FUNCTION__, GetThreadName().c_str())
|
||||
|
||||
#define LOG_WAL_TRACE_C LOG(TRACE) << WAL_MODULE_CLASS_FUNCTION
|
||||
#define LOG_WAL_DEBUG_C LOG(DEBUG) << WAL_MODULE_CLASS_FUNCTION
|
||||
#define LOG_WAL_INFO_C LOG(INFO) << WAL_MODULE_CLASS_FUNCTION
|
||||
#define LOG_WAL_WARNING_C LOG(WARNING) << WAL_MODULE_CLASS_FUNCTION
|
||||
#define LOG_WAL_ERROR_C LOG(ERROR) << WAL_MODULE_CLASS_FUNCTION
|
||||
#define LOG_WAL_FATAL_C LOG(FATAL) << WAL_MODULE_CLASS_FUNCTION
|
||||
|
||||
#define LOG_WAL_TRACE_ LOG(TRACE) << WAL_MODULE_FUNCTION
|
||||
#define LOG_WAL_DEBUG_ LOG(DEBUG) << WAL_MODULE_FUNCTION
|
||||
#define LOG_WAL_INFO_ LOG(INFO) << WAL_MODULE_FUNCTION
|
||||
#define LOG_WAL_WARNING_ LOG(WARNING) << WAL_MODULE_FUNCTION
|
||||
#define LOG_WAL_ERROR_ LOG(ERROR) << WAL_MODULE_FUNCTION
|
||||
#define LOG_WAL_FATAL_ LOG(FATAL) << WAL_MODULE_FUNCTION
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
std::string
|
||||
LogOut(const char* pattern, ...);
|
||||
|
||||
|
@ -132,4 +71,7 @@ SetThreadName(const std::string& name);
|
|||
std::string
|
||||
GetThreadName();
|
||||
|
||||
int64_t
|
||||
get_thread_start_timestamp();
|
||||
|
||||
} // namespace milvus
|
||||
|
|
|
@ -24,7 +24,42 @@
|
|||
namespace milvus {
|
||||
namespace server {
|
||||
|
||||
class Context {
|
||||
class RequestContext {
|
||||
public:
|
||||
std::string&
|
||||
request_id() {
|
||||
return request_id_;
|
||||
}
|
||||
|
||||
std::string&
|
||||
collection_name() {
|
||||
return collection_name_;
|
||||
}
|
||||
|
||||
std::string&
|
||||
client_tag() {
|
||||
return client_tag_;
|
||||
}
|
||||
|
||||
std::string&
|
||||
client_ipport() {
|
||||
return client_ipport_;
|
||||
}
|
||||
|
||||
std::string&
|
||||
command_tag() {
|
||||
return command_tag_;
|
||||
}
|
||||
|
||||
private:
|
||||
std::string request_id_;
|
||||
std::string collection_name_;
|
||||
std::string client_tag_;
|
||||
std::string client_ipport_;
|
||||
std::string command_tag_;
|
||||
};
|
||||
|
||||
class Context : public RequestContext {
|
||||
public:
|
||||
explicit Context(std::string request_id);
|
||||
|
||||
|
|
Loading…
Reference in New Issue