update 添加时间 等级
This commit is contained in:
parent
f4817f3ac1
commit
9bae918829
|
|
@ -3,5 +3,4 @@ project(cppTemp)
|
||||||
|
|
||||||
set(CMAKE_CXX_STANDARD 20)
|
set(CMAKE_CXX_STANDARD 20)
|
||||||
|
|
||||||
add_executable(cppTemp main.cpp
|
add_executable(cppTemp main.cpp Logger.cpp Logger.h)
|
||||||
)
|
|
||||||
|
|
|
||||||
88
Logger.h
88
Logger.h
|
|
@ -30,8 +30,9 @@ class LogQueue {
|
||||||
public:
|
public:
|
||||||
void push(const std::string& msg) {
|
void push(const std::string& msg) {
|
||||||
std::lock_guard<std::mutex> lock(mutex_);
|
std::lock_guard<std::mutex> lock(mutex_);
|
||||||
|
queue_.push(msg);
|
||||||
//构造好自动加锁,析构自动解锁
|
//构造好自动加锁,析构自动解锁
|
||||||
cond_var_.notify_one();
|
cond_var_.notify_all();
|
||||||
}; //字符串放队列中
|
}; //字符串放队列中
|
||||||
bool pop(std::string& msg) {
|
bool pop(std::string& msg) {
|
||||||
std::unique_lock<std::mutex> lock(mutex_);
|
std::unique_lock<std::mutex> lock(mutex_);
|
||||||
|
|
@ -44,6 +45,12 @@ public:
|
||||||
if (is_shutdown_ && queue_.empty()) {
|
if (is_shutdown_ && queue_.empty()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
//保证队列的数据被清空掉
|
||||||
|
// while (is_shutdown_ && !queue_.empty()) {
|
||||||
|
// msg = queue_.front();
|
||||||
|
// queue_.pop();
|
||||||
|
// return false;
|
||||||
|
// }
|
||||||
msg = queue_.front(); //返回消息给msg指针
|
msg = queue_.front(); //返回消息给msg指针
|
||||||
queue_.pop();
|
queue_.pop();
|
||||||
return true;
|
return true;
|
||||||
|
|
@ -60,6 +67,13 @@ private:
|
||||||
bool is_shutdown_ = false;
|
bool is_shutdown_ = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum class Loglevel {
|
||||||
|
INFO,
|
||||||
|
DEBUG,
|
||||||
|
WARNING,
|
||||||
|
ERROR
|
||||||
|
};
|
||||||
|
|
||||||
class Logger {
|
class Logger {
|
||||||
public:
|
public:
|
||||||
Logger(const std::string& filename) : log_file_(filename, std::ios::out | std::ios::app)
|
Logger(const std::string& filename) : log_file_(filename, std::ios::out | std::ios::app)
|
||||||
|
|
@ -75,12 +89,80 @@ public:
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
~Logger();
|
~Logger() {
|
||||||
|
exit_flag_ = true;
|
||||||
|
log_queue_.shutdown();
|
||||||
|
//如果日志结束了,说明主线程退出,这里是优雅退出,等待其他主线程
|
||||||
|
if (worker_thread_.joinable()) {
|
||||||
|
worker_thread_.join();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (log_file_.is_open()) {
|
||||||
|
log_file_.close();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
template<typename ... Args>
|
template<typename ... Args>
|
||||||
void log(const std::string& format, Args&& ...args);
|
void log(Loglevel loglevel, const std::string& format, Args&& ...args) {
|
||||||
|
std::string level_str;
|
||||||
|
switch (loglevel) {
|
||||||
|
case Loglevel::INFO:
|
||||||
|
level_str = "[INFO] ";
|
||||||
|
break;
|
||||||
|
case Loglevel::DEBUG:
|
||||||
|
level_str = "[DEBUG] ";
|
||||||
|
break;
|
||||||
|
case Loglevel::WARNING:
|
||||||
|
level_str = "[WARNING] ";
|
||||||
|
break;
|
||||||
|
case Loglevel::ERROR:
|
||||||
|
level_str = "[ERROR] ";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
log_queue_.push(level_str + formatMessage(format, std::forward<Args>(args)...));
|
||||||
|
};
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
std::string GetTimeStamp() {
|
||||||
|
std::time_t now = std::time(nullptr);
|
||||||
|
std::tm* local_time = std::localtime(&now);
|
||||||
|
char buffer[80];
|
||||||
|
std::strftime(buffer, sizeof(buffer), "%Y-%m-%d %H:%M:%S", local_time);
|
||||||
|
return std::string(buffer);
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename ... Args>
|
||||||
|
std::string formatMessage(const std::string& format, Args&&...args) {
|
||||||
|
std::vector<std::string> arg_strings = {to_string_helper(std::forward<Args>(args))...};
|
||||||
|
std::ostringstream oss;
|
||||||
|
size_t arg_index = 0;
|
||||||
|
size_t pos = 0;
|
||||||
|
size_t placeholder = format.find("{}", pos);
|
||||||
|
|
||||||
|
oss << GetTimeStamp() << " ";
|
||||||
|
|
||||||
|
while (placeholder != std::string::npos) {
|
||||||
|
oss << format.substr(pos, placeholder - pos);
|
||||||
|
if (arg_index < arg_strings.size()) {
|
||||||
|
oss << arg_strings[arg_index];
|
||||||
|
} else {
|
||||||
|
oss << "{}";
|
||||||
|
//如果占位符没有对应参数,保留占位符
|
||||||
|
}
|
||||||
|
arg_strings[arg_index++];
|
||||||
|
pos = placeholder + 2;
|
||||||
|
placeholder = format.find("{}", pos);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
oss << format.substr(pos);
|
||||||
|
while (arg_index < arg_strings.size()) {
|
||||||
|
oss << arg_strings[arg_index++];
|
||||||
|
}
|
||||||
|
return oss.str();
|
||||||
|
}
|
||||||
|
|
||||||
LogQueue log_queue_;
|
LogQueue log_queue_;
|
||||||
std::thread worker_thread_;
|
std::thread worker_thread_;
|
||||||
std::ofstream log_file_;
|
std::ofstream log_file_;
|
||||||
|
|
|
||||||
|
|
@ -1,60 +0,0 @@
|
||||||
{
|
|
||||||
"configurations" :
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"directories" :
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"build" : ".",
|
|
||||||
"jsonFile" : "directory-.-Debug-f5ebdc15457944623624.json",
|
|
||||||
"minimumCMakeVersion" :
|
|
||||||
{
|
|
||||||
"string" : "3.30"
|
|
||||||
},
|
|
||||||
"projectIndex" : 0,
|
|
||||||
"source" : ".",
|
|
||||||
"targetIndexes" :
|
|
||||||
[
|
|
||||||
0
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name" : "Debug",
|
|
||||||
"projects" :
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"directoryIndexes" :
|
|
||||||
[
|
|
||||||
0
|
|
||||||
],
|
|
||||||
"name" : "cppTemp",
|
|
||||||
"targetIndexes" :
|
|
||||||
[
|
|
||||||
0
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"targets" :
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"directoryIndex" : 0,
|
|
||||||
"id" : "cppTemp::@6890427a1f51a3e7e1df",
|
|
||||||
"jsonFile" : "target-cppTemp-Debug-f55973cf228b99e57e4f.json",
|
|
||||||
"name" : "cppTemp",
|
|
||||||
"projectIndex" : 0
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"kind" : "codemodel",
|
|
||||||
"paths" :
|
|
||||||
{
|
|
||||||
"build" : "/Users/czzhangheng/cppTemp/cmake-build-debug",
|
|
||||||
"source" : "/Users/czzhangheng/cppTemp"
|
|
||||||
},
|
|
||||||
"version" :
|
|
||||||
{
|
|
||||||
"major" : 2,
|
|
||||||
"minor" : 7
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,133 +0,0 @@
|
||||||
{
|
|
||||||
"artifacts" :
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"path" : "cppTemp"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"backtrace" : 1,
|
|
||||||
"backtraceGraph" :
|
|
||||||
{
|
|
||||||
"commands" :
|
|
||||||
[
|
|
||||||
"add_executable"
|
|
||||||
],
|
|
||||||
"files" :
|
|
||||||
[
|
|
||||||
"CMakeLists.txt"
|
|
||||||
],
|
|
||||||
"nodes" :
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"file" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"command" : 0,
|
|
||||||
"file" : 0,
|
|
||||||
"line" : 6,
|
|
||||||
"parent" : 0
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"compileGroups" :
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"compileCommandFragments" :
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"fragment" : "-g -std=gnu++20 -arch arm64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX15.5.sdk -fcolor-diagnostics"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"language" : "CXX",
|
|
||||||
"languageStandard" :
|
|
||||||
{
|
|
||||||
"backtraces" :
|
|
||||||
[
|
|
||||||
1
|
|
||||||
],
|
|
||||||
"standard" : "20"
|
|
||||||
},
|
|
||||||
"sourceIndexes" :
|
|
||||||
[
|
|
||||||
0,
|
|
||||||
1,
|
|
||||||
3
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"id" : "cppTemp::@6890427a1f51a3e7e1df",
|
|
||||||
"link" :
|
|
||||||
{
|
|
||||||
"commandFragments" :
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"fragment" : "-g",
|
|
||||||
"role" : "flags"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fragment" : "",
|
|
||||||
"role" : "flags"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"language" : "CXX"
|
|
||||||
},
|
|
||||||
"name" : "cppTemp",
|
|
||||||
"nameOnDisk" : "cppTemp",
|
|
||||||
"paths" :
|
|
||||||
{
|
|
||||||
"build" : ".",
|
|
||||||
"source" : "."
|
|
||||||
},
|
|
||||||
"sourceGroups" :
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"name" : "Source Files",
|
|
||||||
"sourceIndexes" :
|
|
||||||
[
|
|
||||||
0,
|
|
||||||
1,
|
|
||||||
3
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name" : "Header Files",
|
|
||||||
"sourceIndexes" :
|
|
||||||
[
|
|
||||||
2,
|
|
||||||
4
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"sources" :
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "main.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "dl.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"path" : "dl.h",
|
|
||||||
"sourceGroupIndex" : 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "d35.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"path" : "d35.h",
|
|
||||||
"sourceGroupIndex" : 1
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"type" : "EXECUTABLE"
|
|
||||||
}
|
|
||||||
|
|
@ -81,12 +81,12 @@ clean: CMakeFiles/cppTemp.dir/clean
|
||||||
CMakeFiles/cppTemp.dir/all:
|
CMakeFiles/cppTemp.dir/all:
|
||||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/cppTemp.dir/build.make CMakeFiles/cppTemp.dir/depend
|
$(MAKE) $(MAKESILENT) -f CMakeFiles/cppTemp.dir/build.make CMakeFiles/cppTemp.dir/depend
|
||||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/cppTemp.dir/build.make CMakeFiles/cppTemp.dir/build
|
$(MAKE) $(MAKESILENT) -f CMakeFiles/cppTemp.dir/build.make CMakeFiles/cppTemp.dir/build
|
||||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/Users/czzhangheng/cppTemp/cmake-build-debug/CMakeFiles --progress-num=1,2,3,4 "Built target cppTemp"
|
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/Users/czzhangheng/cppTemp/cmake-build-debug/CMakeFiles --progress-num=1,2,3 "Built target cppTemp"
|
||||||
.PHONY : CMakeFiles/cppTemp.dir/all
|
.PHONY : CMakeFiles/cppTemp.dir/all
|
||||||
|
|
||||||
# Build rule for subdir invocation for target.
|
# Build rule for subdir invocation for target.
|
||||||
CMakeFiles/cppTemp.dir/rule: cmake_check_build_system
|
CMakeFiles/cppTemp.dir/rule: cmake_check_build_system
|
||||||
$(CMAKE_COMMAND) -E cmake_progress_start /Users/czzhangheng/cppTemp/cmake-build-debug/CMakeFiles 4
|
$(CMAKE_COMMAND) -E cmake_progress_start /Users/czzhangheng/cppTemp/cmake-build-debug/CMakeFiles 3
|
||||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/cppTemp.dir/all
|
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/cppTemp.dir/all
|
||||||
$(CMAKE_COMMAND) -E cmake_progress_start /Users/czzhangheng/cppTemp/cmake-build-debug/CMakeFiles 0
|
$(CMAKE_COMMAND) -E cmake_progress_start /Users/czzhangheng/cppTemp/cmake-build-debug/CMakeFiles 0
|
||||||
.PHONY : CMakeFiles/cppTemp.dir/rule
|
.PHONY : CMakeFiles/cppTemp.dir/rule
|
||||||
|
|
|
||||||
|
|
@ -8,8 +8,7 @@ set(CMAKE_DEPENDS_LANGUAGES
|
||||||
|
|
||||||
# The set of dependency files which are needed:
|
# The set of dependency files which are needed:
|
||||||
set(CMAKE_DEPENDS_DEPENDENCY_FILES
|
set(CMAKE_DEPENDS_DEPENDENCY_FILES
|
||||||
"/Users/czzhangheng/cppTemp/d35.cpp" "CMakeFiles/cppTemp.dir/d35.cpp.o" "gcc" "CMakeFiles/cppTemp.dir/d35.cpp.o.d"
|
"/Users/czzhangheng/cppTemp/Logger.cpp" "CMakeFiles/cppTemp.dir/Logger.cpp.o" "gcc" "CMakeFiles/cppTemp.dir/Logger.cpp.o.d"
|
||||||
"/Users/czzhangheng/cppTemp/dl.cpp" "CMakeFiles/cppTemp.dir/dl.cpp.o" "gcc" "CMakeFiles/cppTemp.dir/dl.cpp.o.d"
|
|
||||||
"/Users/czzhangheng/cppTemp/main.cpp" "CMakeFiles/cppTemp.dir/main.cpp.o" "gcc" "CMakeFiles/cppTemp.dir/main.cpp.o.d"
|
"/Users/czzhangheng/cppTemp/main.cpp" "CMakeFiles/cppTemp.dir/main.cpp.o" "gcc" "CMakeFiles/cppTemp.dir/main.cpp.o.d"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -83,49 +83,33 @@ CMakeFiles/cppTemp.dir/main.cpp.s: cmake_force
|
||||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/cppTemp.dir/main.cpp.s"
|
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/cppTemp.dir/main.cpp.s"
|
||||||
/Library/Developer/CommandLineTools/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /Users/czzhangheng/cppTemp/main.cpp -o CMakeFiles/cppTemp.dir/main.cpp.s
|
/Library/Developer/CommandLineTools/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /Users/czzhangheng/cppTemp/main.cpp -o CMakeFiles/cppTemp.dir/main.cpp.s
|
||||||
|
|
||||||
CMakeFiles/cppTemp.dir/dl.cpp.o: CMakeFiles/cppTemp.dir/flags.make
|
CMakeFiles/cppTemp.dir/Logger.cpp.o: CMakeFiles/cppTemp.dir/flags.make
|
||||||
CMakeFiles/cppTemp.dir/dl.cpp.o: /Users/czzhangheng/cppTemp/dl.cpp
|
CMakeFiles/cppTemp.dir/Logger.cpp.o: /Users/czzhangheng/cppTemp/Logger.cpp
|
||||||
CMakeFiles/cppTemp.dir/dl.cpp.o: CMakeFiles/cppTemp.dir/compiler_depend.ts
|
CMakeFiles/cppTemp.dir/Logger.cpp.o: CMakeFiles/cppTemp.dir/compiler_depend.ts
|
||||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/Users/czzhangheng/cppTemp/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Building CXX object CMakeFiles/cppTemp.dir/dl.cpp.o"
|
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/Users/czzhangheng/cppTemp/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Building CXX object CMakeFiles/cppTemp.dir/Logger.cpp.o"
|
||||||
/Library/Developer/CommandLineTools/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/cppTemp.dir/dl.cpp.o -MF CMakeFiles/cppTemp.dir/dl.cpp.o.d -o CMakeFiles/cppTemp.dir/dl.cpp.o -c /Users/czzhangheng/cppTemp/dl.cpp
|
/Library/Developer/CommandLineTools/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/cppTemp.dir/Logger.cpp.o -MF CMakeFiles/cppTemp.dir/Logger.cpp.o.d -o CMakeFiles/cppTemp.dir/Logger.cpp.o -c /Users/czzhangheng/cppTemp/Logger.cpp
|
||||||
|
|
||||||
CMakeFiles/cppTemp.dir/dl.cpp.i: cmake_force
|
CMakeFiles/cppTemp.dir/Logger.cpp.i: cmake_force
|
||||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/cppTemp.dir/dl.cpp.i"
|
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/cppTemp.dir/Logger.cpp.i"
|
||||||
/Library/Developer/CommandLineTools/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /Users/czzhangheng/cppTemp/dl.cpp > CMakeFiles/cppTemp.dir/dl.cpp.i
|
/Library/Developer/CommandLineTools/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /Users/czzhangheng/cppTemp/Logger.cpp > CMakeFiles/cppTemp.dir/Logger.cpp.i
|
||||||
|
|
||||||
CMakeFiles/cppTemp.dir/dl.cpp.s: cmake_force
|
CMakeFiles/cppTemp.dir/Logger.cpp.s: cmake_force
|
||||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/cppTemp.dir/dl.cpp.s"
|
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/cppTemp.dir/Logger.cpp.s"
|
||||||
/Library/Developer/CommandLineTools/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /Users/czzhangheng/cppTemp/dl.cpp -o CMakeFiles/cppTemp.dir/dl.cpp.s
|
/Library/Developer/CommandLineTools/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /Users/czzhangheng/cppTemp/Logger.cpp -o CMakeFiles/cppTemp.dir/Logger.cpp.s
|
||||||
|
|
||||||
CMakeFiles/cppTemp.dir/d35.cpp.o: CMakeFiles/cppTemp.dir/flags.make
|
|
||||||
CMakeFiles/cppTemp.dir/d35.cpp.o: /Users/czzhangheng/cppTemp/d35.cpp
|
|
||||||
CMakeFiles/cppTemp.dir/d35.cpp.o: CMakeFiles/cppTemp.dir/compiler_depend.ts
|
|
||||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/Users/czzhangheng/cppTemp/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "Building CXX object CMakeFiles/cppTemp.dir/d35.cpp.o"
|
|
||||||
/Library/Developer/CommandLineTools/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/cppTemp.dir/d35.cpp.o -MF CMakeFiles/cppTemp.dir/d35.cpp.o.d -o CMakeFiles/cppTemp.dir/d35.cpp.o -c /Users/czzhangheng/cppTemp/d35.cpp
|
|
||||||
|
|
||||||
CMakeFiles/cppTemp.dir/d35.cpp.i: cmake_force
|
|
||||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/cppTemp.dir/d35.cpp.i"
|
|
||||||
/Library/Developer/CommandLineTools/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /Users/czzhangheng/cppTemp/d35.cpp > CMakeFiles/cppTemp.dir/d35.cpp.i
|
|
||||||
|
|
||||||
CMakeFiles/cppTemp.dir/d35.cpp.s: cmake_force
|
|
||||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/cppTemp.dir/d35.cpp.s"
|
|
||||||
/Library/Developer/CommandLineTools/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /Users/czzhangheng/cppTemp/d35.cpp -o CMakeFiles/cppTemp.dir/d35.cpp.s
|
|
||||||
|
|
||||||
# Object files for target cppTemp
|
# Object files for target cppTemp
|
||||||
cppTemp_OBJECTS = \
|
cppTemp_OBJECTS = \
|
||||||
"CMakeFiles/cppTemp.dir/main.cpp.o" \
|
"CMakeFiles/cppTemp.dir/main.cpp.o" \
|
||||||
"CMakeFiles/cppTemp.dir/dl.cpp.o" \
|
"CMakeFiles/cppTemp.dir/Logger.cpp.o"
|
||||||
"CMakeFiles/cppTemp.dir/d35.cpp.o"
|
|
||||||
|
|
||||||
# External object files for target cppTemp
|
# External object files for target cppTemp
|
||||||
cppTemp_EXTERNAL_OBJECTS =
|
cppTemp_EXTERNAL_OBJECTS =
|
||||||
|
|
||||||
cppTemp: CMakeFiles/cppTemp.dir/main.cpp.o
|
cppTemp: CMakeFiles/cppTemp.dir/main.cpp.o
|
||||||
cppTemp: CMakeFiles/cppTemp.dir/dl.cpp.o
|
cppTemp: CMakeFiles/cppTemp.dir/Logger.cpp.o
|
||||||
cppTemp: CMakeFiles/cppTemp.dir/d35.cpp.o
|
|
||||||
cppTemp: CMakeFiles/cppTemp.dir/build.make
|
cppTemp: CMakeFiles/cppTemp.dir/build.make
|
||||||
cppTemp: CMakeFiles/cppTemp.dir/link.txt
|
cppTemp: CMakeFiles/cppTemp.dir/link.txt
|
||||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --bold --progress-dir=/Users/czzhangheng/cppTemp/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_4) "Linking CXX executable cppTemp"
|
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --bold --progress-dir=/Users/czzhangheng/cppTemp/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "Linking CXX executable cppTemp"
|
||||||
$(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/cppTemp.dir/link.txt --verbose=$(VERBOSE)
|
$(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/cppTemp.dir/link.txt --verbose=$(VERBOSE)
|
||||||
|
|
||||||
# Rule to build all files generated by this target.
|
# Rule to build all files generated by this target.
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,6 @@
|
||||||
file(REMOVE_RECURSE
|
file(REMOVE_RECURSE
|
||||||
"CMakeFiles/cppTemp.dir/d35.cpp.o"
|
"CMakeFiles/cppTemp.dir/Logger.cpp.o"
|
||||||
"CMakeFiles/cppTemp.dir/d35.cpp.o.d"
|
"CMakeFiles/cppTemp.dir/Logger.cpp.o.d"
|
||||||
"CMakeFiles/cppTemp.dir/dl.cpp.o"
|
|
||||||
"CMakeFiles/cppTemp.dir/dl.cpp.o.d"
|
|
||||||
"CMakeFiles/cppTemp.dir/main.cpp.o"
|
"CMakeFiles/cppTemp.dir/main.cpp.o"
|
||||||
"CMakeFiles/cppTemp.dir/main.cpp.o.d"
|
"CMakeFiles/cppTemp.dir/main.cpp.o.d"
|
||||||
"cppTemp"
|
"cppTemp"
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -1 +1 @@
|
||||||
/Library/Developer/CommandLineTools/usr/bin/c++ -g -arch arm64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX15.5.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names CMakeFiles/cppTemp.dir/main.cpp.o CMakeFiles/cppTemp.dir/dl.cpp.o CMakeFiles/cppTemp.dir/d35.cpp.o -o cppTemp
|
/Library/Developer/CommandLineTools/usr/bin/c++ -g -arch arm64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX15.5.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names CMakeFiles/cppTemp.dir/main.cpp.o CMakeFiles/cppTemp.dir/Logger.cpp.o -o cppTemp
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
CMAKE_PROGRESS_1 = 1
|
CMAKE_PROGRESS_1 = 1
|
||||||
CMAKE_PROGRESS_2 = 2
|
CMAKE_PROGRESS_2 = 2
|
||||||
CMAKE_PROGRESS_3 = 3
|
CMAKE_PROGRESS_3 = 3
|
||||||
CMAKE_PROGRESS_4 = 4
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
4
|
3
|
||||||
|
|
|
||||||
|
|
@ -129,53 +129,29 @@ cppTemp/fast:
|
||||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/cppTemp.dir/build.make CMakeFiles/cppTemp.dir/build
|
$(MAKE) $(MAKESILENT) -f CMakeFiles/cppTemp.dir/build.make CMakeFiles/cppTemp.dir/build
|
||||||
.PHONY : cppTemp/fast
|
.PHONY : cppTemp/fast
|
||||||
|
|
||||||
d35.o: d35.cpp.o
|
Logger.o: Logger.cpp.o
|
||||||
.PHONY : d35.o
|
.PHONY : Logger.o
|
||||||
|
|
||||||
# target to build an object file
|
# target to build an object file
|
||||||
d35.cpp.o:
|
Logger.cpp.o:
|
||||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/cppTemp.dir/build.make CMakeFiles/cppTemp.dir/d35.cpp.o
|
$(MAKE) $(MAKESILENT) -f CMakeFiles/cppTemp.dir/build.make CMakeFiles/cppTemp.dir/Logger.cpp.o
|
||||||
.PHONY : d35.cpp.o
|
.PHONY : Logger.cpp.o
|
||||||
|
|
||||||
d35.i: d35.cpp.i
|
Logger.i: Logger.cpp.i
|
||||||
.PHONY : d35.i
|
.PHONY : Logger.i
|
||||||
|
|
||||||
# target to preprocess a source file
|
# target to preprocess a source file
|
||||||
d35.cpp.i:
|
Logger.cpp.i:
|
||||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/cppTemp.dir/build.make CMakeFiles/cppTemp.dir/d35.cpp.i
|
$(MAKE) $(MAKESILENT) -f CMakeFiles/cppTemp.dir/build.make CMakeFiles/cppTemp.dir/Logger.cpp.i
|
||||||
.PHONY : d35.cpp.i
|
.PHONY : Logger.cpp.i
|
||||||
|
|
||||||
d35.s: d35.cpp.s
|
Logger.s: Logger.cpp.s
|
||||||
.PHONY : d35.s
|
.PHONY : Logger.s
|
||||||
|
|
||||||
# target to generate assembly for a file
|
# target to generate assembly for a file
|
||||||
d35.cpp.s:
|
Logger.cpp.s:
|
||||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/cppTemp.dir/build.make CMakeFiles/cppTemp.dir/d35.cpp.s
|
$(MAKE) $(MAKESILENT) -f CMakeFiles/cppTemp.dir/build.make CMakeFiles/cppTemp.dir/Logger.cpp.s
|
||||||
.PHONY : d35.cpp.s
|
.PHONY : Logger.cpp.s
|
||||||
|
|
||||||
dl.o: dl.cpp.o
|
|
||||||
.PHONY : dl.o
|
|
||||||
|
|
||||||
# target to build an object file
|
|
||||||
dl.cpp.o:
|
|
||||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/cppTemp.dir/build.make CMakeFiles/cppTemp.dir/dl.cpp.o
|
|
||||||
.PHONY : dl.cpp.o
|
|
||||||
|
|
||||||
dl.i: dl.cpp.i
|
|
||||||
.PHONY : dl.i
|
|
||||||
|
|
||||||
# target to preprocess a source file
|
|
||||||
dl.cpp.i:
|
|
||||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/cppTemp.dir/build.make CMakeFiles/cppTemp.dir/dl.cpp.i
|
|
||||||
.PHONY : dl.cpp.i
|
|
||||||
|
|
||||||
dl.s: dl.cpp.s
|
|
||||||
.PHONY : dl.s
|
|
||||||
|
|
||||||
# target to generate assembly for a file
|
|
||||||
dl.cpp.s:
|
|
||||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/cppTemp.dir/build.make CMakeFiles/cppTemp.dir/dl.cpp.s
|
|
||||||
.PHONY : dl.cpp.s
|
|
||||||
|
|
||||||
main.o: main.cpp.o
|
main.o: main.cpp.o
|
||||||
.PHONY : main.o
|
.PHONY : main.o
|
||||||
|
|
@ -210,12 +186,9 @@ help:
|
||||||
@echo "... edit_cache"
|
@echo "... edit_cache"
|
||||||
@echo "... rebuild_cache"
|
@echo "... rebuild_cache"
|
||||||
@echo "... cppTemp"
|
@echo "... cppTemp"
|
||||||
@echo "... d35.o"
|
@echo "... Logger.o"
|
||||||
@echo "... d35.i"
|
@echo "... Logger.i"
|
||||||
@echo "... d35.s"
|
@echo "... Logger.s"
|
||||||
@echo "... dl.o"
|
|
||||||
@echo "... dl.i"
|
|
||||||
@echo "... dl.s"
|
|
||||||
@echo "... main.o"
|
@echo "... main.o"
|
||||||
@echo "... main.i"
|
@echo "... main.i"
|
||||||
@echo "... main.s"
|
@echo "... main.s"
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
Start testing: Jul 08 15:43 CST
|
Start testing: Jul 09 14:56 CST
|
||||||
----------------------------------------------------------
|
----------------------------------------------------------
|
||||||
End testing: Jul 08 15:43 CST
|
End testing: Jul 09 14:56 CST
|
||||||
|
|
|
||||||
Binary file not shown.
14
main.cpp
14
main.cpp
|
|
@ -3,6 +3,20 @@
|
||||||
|
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
|
try {
|
||||||
|
Logger logger("log.txt");
|
||||||
|
int id = 42;
|
||||||
|
std::string action = "login";
|
||||||
|
double duration = 2.333;
|
||||||
|
std::string channel = "World";
|
||||||
|
logger.log(Loglevel::INFO, "User {} performed {} in {} seconds", id, action, duration);
|
||||||
|
logger.log(Loglevel::DEBUG,"Hello {}", channel);
|
||||||
|
logger.log(Loglevel::WARNING,"This is a log message.");
|
||||||
|
logger.log(Loglevel::ERROR,"Multiple placeholders : {}, {}, ",1,2,3);
|
||||||
|
} catch (const std::exception&e) {
|
||||||
|
std::cerr << "Error is" << e.what() << std::endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue