抛弃GdCpp*.dll/pdb历史重新建库。libhv和Sqlite的dll保留
This commit is contained in:
70
include/aLog.h
Normal file
70
include/aLog.h
Normal file
@@ -0,0 +1,70 @@
|
||||
#pragma once
|
||||
|
||||
#include "GdCPP_Exports.h"
|
||||
|
||||
#include <filesystem>
|
||||
namespace fs = std::filesystem;
|
||||
|
||||
#include "spdlog/spdlog.h"
|
||||
#include "spdlog/fmt/chrono.h" // support for user defined types
|
||||
#include "spdlog/fmt/fmt.h"
|
||||
#include "spdlog/fmt/ostr.h" // support for user defined types
|
||||
#include "spdlog/fmt/xchar.h"
|
||||
#include "spdlog/fmt/bundled/printf.h"
|
||||
|
||||
// aLogInit() 初始化时的flag枚举
|
||||
enum eLogFlag
|
||||
{
|
||||
// 初始化时是否开启console log。
|
||||
// 调用aLogInit()文件log是必须的,console log是可选的
|
||||
// 如果只开console log,调用aLogInitConsole()即可
|
||||
INIT_CONSOLE_LOG = 1 << 0,
|
||||
|
||||
// 是否单独开一个error和warning的log文件。
|
||||
// 默认不开启。
|
||||
INIT_ERROR_FILE_LOG = 1 << 1,
|
||||
|
||||
// 文件log是否滚动存储
|
||||
// 不设置(默认):每次启动时,都重新创建一个新的log文件,文件名添加时间戳以区分。
|
||||
// 设置了,aLogInit()的logfilesize_M设置单个文件大小,logfilenum设置最多文件数
|
||||
INIT_ROLL_FILE_LOG = (1<<2)
|
||||
};
|
||||
|
||||
//app全局通用的logger实例
|
||||
GDCPP_API extern std::shared_ptr<spdlog::logger> alog;
|
||||
|
||||
GDCPP_API extern spdlog::sink_ptr pConsoleSink;
|
||||
GDCPP_API extern spdlog::sink_ptr pFileSink;
|
||||
GDCPP_API extern spdlog::sink_ptr pFileSink2;
|
||||
|
||||
// 初始化文件 + Console logger。其中文件logger是必选,Console可选
|
||||
GDCPP_API void InitRollFileLog(std::shared_ptr<spdlog::logger>& log, const char* logname, int flag, const fs::path & logdir, const std::wstring & filename, int logfilesize_K, int logfilenum = 16);
|
||||
inline void aLogInitRollFileLog(int flag, const fs::path& logdir, const std::wstring& filename, int logfilesize_K, int logfilenum = 16)
|
||||
{
|
||||
InitRollFileLog(alog, "", flag, logdir, filename, logfilesize_K, logfilenum);
|
||||
}
|
||||
GDCPP_API void InitBasicFileLog(std::shared_ptr<spdlog::logger>& log, const char* logname, int flag, const fs::path& logdir, const std::wstring& filename);
|
||||
inline void aLogInitBasicFileLog(int flag, const fs::path& logdir, const std::wstring& filename)
|
||||
{
|
||||
InitBasicFileLog(alog, "", flag, logdir, filename);
|
||||
}
|
||||
// 仅开Console log
|
||||
GDCPP_API void aLogInitConsole();
|
||||
|
||||
// 关闭log
|
||||
// aLogInit()、aLogInitConsole()初始化的资源,都在这里释放
|
||||
GDCPP_API void LogDeinit(std::shared_ptr<spdlog::logger>& log, bool byelog=true);
|
||||
inline void aLogDeinit(bool byelog = true)
|
||||
{
|
||||
LogDeinit(alog, byelog);
|
||||
}
|
||||
|
||||
// 如果已经打开了Console Log,关闭掉
|
||||
// aLogInit()启动的log,console可以中途打开、关闭。
|
||||
// aLogInitConsole()启动的log也可以,但没有必要
|
||||
GDCPP_API void closeConsoleLog();
|
||||
|
||||
// 如果没开启Console log,打开
|
||||
// aLogInit()启动的log,console可以中途打开、关闭。
|
||||
// aLogInitConsole()启动的log也可以,但没有必要
|
||||
GDCPP_API void openConsoleLog();
|
||||
Reference in New Issue
Block a user