Fix log path (Crash)
This commit is contained in:
+17
-10
@@ -1,27 +1,34 @@
|
||||
#include <filesystem>
|
||||
|
||||
#include "log.h"
|
||||
#include "util.h"
|
||||
|
||||
#define LOGGER_NAME "WCF"
|
||||
#define LOGGER_FILE_NAME "logs/wcf.txt"
|
||||
#define LOGGER_FILE_NAME "/logs/wcf.txt"
|
||||
#define LOGGER_MAX_SIZE 1024 * 1024 * 10 // 10M
|
||||
#define LOGGER_MAX_FILES 10 // 10 files
|
||||
|
||||
void InitLogger()
|
||||
void InitLogger(std::string path)
|
||||
{
|
||||
static std::shared_ptr<spdlog::logger> gLogger = nullptr;
|
||||
if (gLogger != nullptr) {
|
||||
static std::shared_ptr<spdlog::logger> logger = nullptr;
|
||||
if (logger != nullptr) {
|
||||
return;
|
||||
}
|
||||
|
||||
gLogger = spdlog::rotating_logger_mt(LOGGER_NAME, LOGGER_FILE_NAME, LOGGER_MAX_SIZE, LOGGER_MAX_FILES);
|
||||
// gLogger = spdlog::stdout_color_mt("console");
|
||||
auto filename = std::filesystem::path(path + LOGGER_FILE_NAME).make_preferred().string();
|
||||
try {
|
||||
logger = spdlog::rotating_logger_mt(LOGGER_NAME, filename, LOGGER_MAX_SIZE, LOGGER_MAX_FILES);
|
||||
} catch (const spdlog::spdlog_ex &ex) {
|
||||
MessageBox(NULL, String2Wstring(ex.what()).c_str(), L"Init LOGGER ERROR", 0);
|
||||
}
|
||||
|
||||
spdlog::set_default_logger(gLogger);
|
||||
gLogger->set_pattern("[%Y-%m-%d %H:%M:%S.%e] [%l] [%n] [%s::%#::%!] %v");
|
||||
spdlog::set_default_logger(logger);
|
||||
logger->set_pattern("[%Y-%m-%d %H:%M:%S.%e] [%l] [%n] [%s::%#::%!] %v");
|
||||
#if SPDLOG_ACTIVE_LEVEL <= SPDLOG_LEVEL_DEBUG
|
||||
spdlog::set_level(spdlog::level::debug);
|
||||
gLogger->flush_on(spdlog::level::debug);
|
||||
logger->flush_on(spdlog::level::debug);
|
||||
#else
|
||||
gLogger->flush_on(spdlog::level::info);
|
||||
logger->flush_on(spdlog::level::info);
|
||||
#endif
|
||||
LOG_DEBUG("InitLogger with debug level");
|
||||
}
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
#pragma once
|
||||
|
||||
#include <string>
|
||||
|
||||
#ifdef ENABLE_DEBUG_LOG
|
||||
#include <stdint.h>
|
||||
|
||||
@@ -19,4 +21,4 @@ void log_buffer(uint8_t *buffer, size_t len);
|
||||
#define LOG_WARN(...) SPDLOG_WARN(__VA_ARGS__);
|
||||
#define LOG_ERROR(...) SPDLOG_ERROR(__VA_ARGS__);
|
||||
|
||||
void InitLogger();
|
||||
void InitLogger(std::string path);
|
||||
|
||||
+9
-3
@@ -1,16 +1,22 @@
|
||||
#include "spy.h"
|
||||
#include <filesystem>
|
||||
|
||||
#include "load_calls.h"
|
||||
#include "log.h"
|
||||
#include "rpc_server.h"
|
||||
#include "spy.h"
|
||||
#include "util.h"
|
||||
|
||||
WxCalls_t g_WxCalls = { 0 };
|
||||
DWORD g_WeChatWinDllAddr = 0;
|
||||
|
||||
void InitSpy(int port)
|
||||
void InitSpy(LPVOID args)
|
||||
{
|
||||
wchar_t version[16] = { 0 };
|
||||
InitLogger();
|
||||
PortPath_t *pp = (PortPath_t *)args;
|
||||
int port = pp->port;
|
||||
std::string path(pp->path);
|
||||
|
||||
InitLogger(path);
|
||||
g_WeChatWinDllAddr = (DWORD)GetModuleHandle(L"WeChatWin.dll"); // 获取wechatWin模块地址
|
||||
if (g_WeChatWinDllAddr == 0) {
|
||||
LOG_ERROR("获取wechatWin.dll模块地址失败");
|
||||
|
||||
@@ -13,6 +13,11 @@
|
||||
#define GET_WSTRING(addr) ((WCHAR *)(*(DWORD *)(addr)))
|
||||
#define GET_STRING_FROM_P(addr) ((CHAR *)(addr))
|
||||
|
||||
typedef struct PortPath {
|
||||
int port;
|
||||
char path[MAX_PATH];
|
||||
} PortPath_t;
|
||||
|
||||
DWORD GetWeChatPid();
|
||||
int OpenWeChat(DWORD *pid);
|
||||
int GetWeChatVersion(wchar_t *version);
|
||||
|
||||
Reference in New Issue
Block a user