mirror of
https://github.com/kunkundi/crossdesk.git
synced 2025-10-26 20:25:34 +08:00
[feat] rewrite log module
This commit is contained in:
29
src/log/log.cpp
Normal file
29
src/log/log.cpp
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
#include "log.h"
|
||||||
|
|
||||||
|
std::shared_ptr<spdlog::logger> get_logger() {
|
||||||
|
if (auto logger = spdlog::get(LOGGER_NAME)) {
|
||||||
|
return logger;
|
||||||
|
}
|
||||||
|
|
||||||
|
auto now = std::chrono::system_clock::now() + std::chrono::hours(8);
|
||||||
|
auto timet = std::chrono::system_clock::to_time_t(now);
|
||||||
|
auto localTime = *std::gmtime(&timet);
|
||||||
|
std::stringstream ss;
|
||||||
|
std::string filename;
|
||||||
|
ss << LOGGER_NAME;
|
||||||
|
ss << std::put_time(&localTime, "-%Y%m%d-%H%M%S.log");
|
||||||
|
ss >> filename;
|
||||||
|
|
||||||
|
std::string path = "logs/" + filename;
|
||||||
|
std::vector<spdlog::sink_ptr> sinks;
|
||||||
|
sinks.push_back(std::make_shared<spdlog::sinks::stdout_color_sink_mt>());
|
||||||
|
sinks.push_back(std::make_shared<spdlog::sinks::rotating_file_sink_mt>(
|
||||||
|
path, 1048576 * 5, 3));
|
||||||
|
|
||||||
|
auto combined_logger =
|
||||||
|
std::make_shared<spdlog::logger>(LOGGER_NAME, begin(sinks), end(sinks));
|
||||||
|
combined_logger->flush_on(spdlog::level::info);
|
||||||
|
spdlog::register_logger(combined_logger);
|
||||||
|
|
||||||
|
return combined_logger;
|
||||||
|
}
|
||||||
103
src/log/log.h
103
src/log/log.h
@@ -1,3 +1,9 @@
|
|||||||
|
/*
|
||||||
|
* @Author: DI JUNKUN
|
||||||
|
* @Date: 2024-11-26
|
||||||
|
* Copyright (c) 2024 by DI JUNKUN, All Rights Reserved.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef _LOG_H_
|
#ifndef _LOG_H_
|
||||||
#define _LOG_H_
|
#define _LOG_H_
|
||||||
|
|
||||||
@@ -20,97 +26,14 @@ using namespace std::chrono;
|
|||||||
|
|
||||||
constexpr auto LOGGER_NAME = "rt";
|
constexpr auto LOGGER_NAME = "rt";
|
||||||
|
|
||||||
#define LOG_INFO(...) \
|
std::shared_ptr<spdlog::logger> get_logger();
|
||||||
if (nullptr == spdlog::get(LOGGER_NAME)) { \
|
|
||||||
auto now = std::chrono::system_clock::now() + std::chrono::hours(8); \
|
|
||||||
auto timet = std::chrono::system_clock::to_time_t(now); \
|
|
||||||
auto localTime = *std::gmtime(&timet); \
|
|
||||||
std::stringstream ss; \
|
|
||||||
std::string filename; \
|
|
||||||
ss << LOGGER_NAME; \
|
|
||||||
ss << std::put_time(&localTime, "-%Y%m%d-%H%M%S.log"); \
|
|
||||||
ss >> filename; \
|
|
||||||
std::string path = "logs/" + filename; \
|
|
||||||
std::vector<spdlog::sink_ptr> sinks; \
|
|
||||||
sinks.push_back(std::make_shared<spdlog::sinks::stdout_color_sink_mt>()); \
|
|
||||||
sinks.push_back(std::make_shared<spdlog::sinks::rotating_file_sink_mt>( \
|
|
||||||
path, 1048576 * 5, 3)); \
|
|
||||||
auto combined_logger = std::make_shared<spdlog::logger>( \
|
|
||||||
LOGGER_NAME, begin(sinks), end(sinks)); \
|
|
||||||
combined_logger->flush_on(spdlog::level::info); \
|
|
||||||
spdlog::register_logger(combined_logger); \
|
|
||||||
SPDLOG_LOGGER_INFO(combined_logger, __VA_ARGS__); \
|
|
||||||
} else { \
|
|
||||||
SPDLOG_LOGGER_INFO(spdlog::get(LOGGER_NAME), __VA_ARGS__); \
|
|
||||||
}
|
|
||||||
|
|
||||||
#define LOG_WARN(...) \
|
#define LOG_INFO(...) SPDLOG_LOGGER_INFO(get_logger(), __VA_ARGS__);
|
||||||
if (nullptr == spdlog::get(LOGGER_NAME)) { \
|
|
||||||
auto now = std::chrono::system_clock::now() + std::chrono::hours(8); \
|
|
||||||
auto timet = std::chrono::system_clock::to_time_t(now); \
|
|
||||||
auto localTime = *std::gmtime(&timet); \
|
|
||||||
std::stringstream ss; \
|
|
||||||
std::string filename; \
|
|
||||||
ss << LOGGER_NAME; \
|
|
||||||
ss << std::put_time(&localTime, "-%Y%m%d-%H%M%S.log"); \
|
|
||||||
ss >> filename; \
|
|
||||||
std::string path = "logs/" + filename; \
|
|
||||||
std::vector<spdlog::sink_ptr> sinks; \
|
|
||||||
sinks.push_back(std::make_shared<spdlog::sinks::stdout_color_sink_mt>()); \
|
|
||||||
sinks.push_back(std::make_shared<spdlog::sinks::rotating_file_sink_mt>( \
|
|
||||||
path, 1048576 * 5, 3)); \
|
|
||||||
auto combined_logger = std::make_shared<spdlog::logger>( \
|
|
||||||
LOGGER_NAME, begin(sinks), end(sinks)); \
|
|
||||||
spdlog::register_logger(combined_logger); \
|
|
||||||
SPDLOG_LOGGER_WARN(combined_logger, __VA_ARGS__); \
|
|
||||||
} else { \
|
|
||||||
SPDLOG_LOGGER_WARN(spdlog::get(LOGGER_NAME), __VA_ARGS__); \
|
|
||||||
}
|
|
||||||
|
|
||||||
#define LOG_ERROR(...) \
|
#define LOG_WARN(...) SPDLOG_LOGGER_WARN(get_logger(), __VA_ARGS__);
|
||||||
if (nullptr == spdlog::get(LOGGER_NAME)) { \
|
|
||||||
auto now = std::chrono::system_clock::now() + std::chrono::hours(8); \
|
|
||||||
auto timet = std::chrono::system_clock::to_time_t(now); \
|
|
||||||
auto localTime = *std::gmtime(&timet); \
|
|
||||||
std::stringstream ss; \
|
|
||||||
std::string filename; \
|
|
||||||
ss << LOGGER_NAME; \
|
|
||||||
ss << std::put_time(&localTime, "-%Y%m%d-%H%M%S.log"); \
|
|
||||||
ss >> filename; \
|
|
||||||
std::string path = "logs/" + filename; \
|
|
||||||
std::vector<spdlog::sink_ptr> sinks; \
|
|
||||||
sinks.push_back(std::make_shared<spdlog::sinks::stdout_color_sink_mt>()); \
|
|
||||||
sinks.push_back(std::make_shared<spdlog::sinks::rotating_file_sink_mt>( \
|
|
||||||
path, 1048576 * 5, 3)); \
|
|
||||||
auto combined_logger = std::make_shared<spdlog::logger>( \
|
|
||||||
LOGGER_NAME, begin(sinks), end(sinks)); \
|
|
||||||
spdlog::register_logger(combined_logger); \
|
|
||||||
SPDLOG_LOGGER_ERROR(combined_logger, __VA_ARGS__); \
|
|
||||||
} else { \
|
|
||||||
SPDLOG_LOGGER_ERROR(spdlog::get(LOGGER_NAME), __VA_ARGS__); \
|
|
||||||
}
|
|
||||||
|
|
||||||
#define LOG_FATAL(...) \
|
#define LOG_ERROR(...) SPDLOG_LOGGER_ERROR(get_logger(), __VA_ARGS__);
|
||||||
if (nullptr == spdlog::get(LOGGER_NAME)) { \
|
|
||||||
auto now = std::chrono::system_clock::now() + std::chrono::hours(8); \
|
|
||||||
auto timet = std::chrono::system_clock::to_time_t(now); \
|
|
||||||
auto localTime = *std::gmtime(&timet); \
|
|
||||||
std::stringstream ss; \
|
|
||||||
std::string filename; \
|
|
||||||
ss << LOGGER_NAME; \
|
|
||||||
ss << std::put_time(&localTime, "-%Y%m%d-%H%M%S.log"); \
|
|
||||||
ss >> filename; \
|
|
||||||
std::string path = "logs/" + filename; \
|
|
||||||
std::vector<spdlog::sink_ptr> sinks; \
|
|
||||||
sinks.push_back(std::make_shared<spdlog::sinks::stdout_color_sink_mt>()); \
|
|
||||||
sinks.push_back(std::make_shared<spdlog::sinks::rotating_file_sink_mt>( \
|
|
||||||
path, 1048576 * 5, 3)); \
|
|
||||||
auto combined_logger = std::make_shared<spdlog::logger>( \
|
|
||||||
LOGGER_NAME, begin(sinks), end(sinks)); \
|
|
||||||
spdlog::register_logger(combined_logger); \
|
|
||||||
SPDLOG_LOGGER_CRITICAL(combined_logger, __VA_ARGS__); \
|
|
||||||
} else { \
|
|
||||||
SPDLOG_LOGGER_CRITICAL(spdlog::get(LOGGER_NAME), __VA_ARGS__); \
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
#define LOG_FATAL(...) SPDLOG_LOGGER_CRITICAL(get_logger(), __VA_ARGS__);
|
||||||
|
|
||||||
|
#endif
|
||||||
Reference in New Issue
Block a user