init project
This commit is contained in:
commit
69492091e7
36
Makefile
Normal file
36
Makefile
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
|
||||||
|
CXX := g++
|
||||||
|
CPP_STD := 17
|
||||||
|
CPP = c++
|
||||||
|
PRJ_NAME = run
|
||||||
|
PRJ_HEADERS_DIR := $(CURDIR)/headers
|
||||||
|
SRC_DIR := $(CURDIR)/src
|
||||||
|
CXX_FLAGS := -Wall -I$(PRJ_HEADERS_DIR) -std=$(CPP)$(CPP_STD) -g
|
||||||
|
LDFLAGS =
|
||||||
|
OUTPUT_DIR := $(CURDIR)/output
|
||||||
|
BUILD_DIR := $(CURDIR)/build
|
||||||
|
|
||||||
|
SRCS := $(wildcard $(SRC_DIR)/*.cc)
|
||||||
|
|
||||||
|
OBJS := $(patsubst $(SRC_DIR)/%.cc, $(BUILD_DIR)/%.o, $(wildcard $(SRC_DIR)/*.cc))
|
||||||
|
|
||||||
|
TARGET = $(OUTPUT_DIR)/$(PRJ_NAME)
|
||||||
|
|
||||||
|
all: $(TARGET)
|
||||||
|
|
||||||
|
$(TARGET): $(OBJS)
|
||||||
|
$(CXX) -o $@ $^ $(LDFLAGS)
|
||||||
|
|
||||||
|
$(BUILD_DIR)/%.o: $(SRC_DIR)/%.cc
|
||||||
|
$(CXX) $(CXX_FLAGS) -c $< -o $@
|
||||||
|
|
||||||
|
run: all
|
||||||
|
@echo "----start exec project------"
|
||||||
|
@$(TARGET)
|
||||||
|
clean:
|
||||||
|
@rm -f $(OBJS) $(TARGET)
|
||||||
|
|
||||||
|
full_clean:
|
||||||
|
@rm -rf $(BUILD_DIR)/* && rm -rf $(OUTPUT_DIR)/*
|
||||||
|
|
||||||
|
.PHONY: all clean
|
BIN
build/main.o
Normal file
BIN
build/main.o
Normal file
Binary file not shown.
94
headers/hlog.hpp
Normal file
94
headers/hlog.hpp
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
#ifndef HLOG_H
|
||||||
|
#define HLOG_H
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include <mutex>
|
||||||
|
#include <memory>
|
||||||
|
#include <htime.hpp>
|
||||||
|
#include <cstdarg>
|
||||||
|
|
||||||
|
#define LOG hlog::getLogger()->WRITE_LOG
|
||||||
|
|
||||||
|
enum class hlog_level
|
||||||
|
{
|
||||||
|
HLOG_INFO,
|
||||||
|
HLOG_WARN,
|
||||||
|
HLOG_ERR,
|
||||||
|
HLOG_CRIT
|
||||||
|
};
|
||||||
|
|
||||||
|
namespace
|
||||||
|
{
|
||||||
|
std::string hlog_level_to_string(const hlog_level &level)
|
||||||
|
{
|
||||||
|
switch (level)
|
||||||
|
{
|
||||||
|
case hlog_level::HLOG_INFO:
|
||||||
|
return "INFO";
|
||||||
|
case hlog_level::HLOG_WARN:
|
||||||
|
return "WARNING";
|
||||||
|
case hlog_level::HLOG_ERR:
|
||||||
|
return "ERROR";
|
||||||
|
case hlog_level::HLOG_CRIT:
|
||||||
|
return "CRITICAL";
|
||||||
|
default:
|
||||||
|
return "UNKNOWN";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class hlog
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
static hlog *global_hloger;
|
||||||
|
static std::mutex mtx;
|
||||||
|
static Htime htimer;
|
||||||
|
hlog()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public:
|
||||||
|
static hlog *getLogger()
|
||||||
|
{
|
||||||
|
if (global_hloger == nullptr)
|
||||||
|
{
|
||||||
|
std::lock_guard<std::mutex> lock(mtx);
|
||||||
|
|
||||||
|
if (global_hloger == nullptr)
|
||||||
|
{
|
||||||
|
global_hloger = new hlog();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return global_hloger;
|
||||||
|
}
|
||||||
|
|
||||||
|
void WRITE_LOG(hlog_level level, const char *fmt, ...)
|
||||||
|
{
|
||||||
|
printf("[%s]:[%-10s]--[", htimer.get_local_time_now().c_str(), hlog_level_to_string(level).c_str());
|
||||||
|
|
||||||
|
va_list ap;
|
||||||
|
va_start(ap, fmt);
|
||||||
|
vprintf(fmt, ap);
|
||||||
|
va_end(ap);
|
||||||
|
|
||||||
|
printf("]\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
static void destroy()
|
||||||
|
{
|
||||||
|
if (global_hloger != nullptr)
|
||||||
|
{
|
||||||
|
delete global_hloger;
|
||||||
|
global_hloger = nullptr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
hlog *hlog::global_hloger = nullptr;
|
||||||
|
|
||||||
|
std::mutex hlog::mtx;
|
||||||
|
|
||||||
|
Htime hlog::htimer;
|
||||||
|
|
||||||
|
#endif
|
28
headers/htime.hpp
Normal file
28
headers/htime.hpp
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <ctime>
|
||||||
|
#include <cstring>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
class Htime
|
||||||
|
{
|
||||||
|
time_t tv;
|
||||||
|
|
||||||
|
public:
|
||||||
|
Htime() {}
|
||||||
|
|
||||||
|
std::string get_local_time_now()
|
||||||
|
{
|
||||||
|
static char buffer[128];
|
||||||
|
|
||||||
|
struct tm *_local_time = nullptr;
|
||||||
|
|
||||||
|
memset(buffer, 0x0, sizeof(buffer));
|
||||||
|
|
||||||
|
tv = time(nullptr);
|
||||||
|
_local_time = localtime(&tv);
|
||||||
|
strftime(buffer, sizeof(buffer), "%Y-%m-%d %H:%M:%S", _local_time);
|
||||||
|
|
||||||
|
return std::string(buffer);
|
||||||
|
}
|
||||||
|
};
|
BIN
output/run
Executable file
BIN
output/run
Executable file
Binary file not shown.
12
src/main.cc
Normal file
12
src/main.cc
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
#include <hlog.hpp>
|
||||||
|
|
||||||
|
int main(int argc, char const *argv[])
|
||||||
|
{
|
||||||
|
|
||||||
|
LOG(hlog_level::HLOG_INFO, "This is a logger info");
|
||||||
|
LOG(hlog_level::HLOG_WARN, "This is a logger info");
|
||||||
|
LOG(hlog_level::HLOG_ERR, "This is a logger info");
|
||||||
|
LOG(hlog_level::HLOG_CRIT, "This is a logger info");
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user