From ddd7e0b1ded3a72ca56cd3fdd8bcb1a838f11b09 Mon Sep 17 00:00:00 2001 From: MistEO Date: Sun, 26 Sep 2021 23:02:49 +0800 Subject: [PATCH] =?UTF-8?q?feat.=E6=97=A5=E5=BF=97=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E8=BF=87=E5=A4=A7=E8=87=AA=E5=8A=A8=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E7=9A=84=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MeoAssistance/Logger.hpp | 19 ++++++++++++++++++- src/MeoAssistance/TaskConfiger.cpp | 6 +++--- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/src/MeoAssistance/Logger.hpp b/src/MeoAssistance/Logger.hpp index 362cb06e30..f6e4b18dc0 100644 --- a/src/MeoAssistance/Logger.hpp +++ b/src/MeoAssistance/Logger.hpp @@ -5,6 +5,7 @@ #include #include #include +#include #include "AsstAux.h" #include "Version.h" @@ -46,7 +47,22 @@ namespace asst { private: Logger() - : m_ofstream(asst::GetCurrentDir() + "asst.log", std::ios::out | std::ios::app) + { + check_filesize_and_remove(); + m_ofstream = std::ofstream(m_log_filename, std::ios::out | std::ios::app); + log_init_info(); + } + + void check_filesize_and_remove() + { + constexpr uintmax_t MaxLogSize = 4 * 1024 * 1024; + uintmax_t log_size = std::filesystem::file_size(m_log_filename); + if (log_size >= MaxLogSize) { + const static std::string back_filename = asst::GetCurrentDir() + "asst.bak.log"; + std::filesystem::rename(m_log_filename, back_filename); + } + } + void log_init_info() { log_trace("-----------------------------"); log_trace("MeoAssistance Process Start"); @@ -102,6 +118,7 @@ namespace asst { std::mutex m_trace_mutex; std::ofstream m_ofstream; + const std::string m_log_filename = asst::GetCurrentDir() + "asst.log"; }; class LoggerAux { diff --git a/src/MeoAssistance/TaskConfiger.cpp b/src/MeoAssistance/TaskConfiger.cpp index 01ca67d81c..0bc2948afd 100644 --- a/src/MeoAssistance/TaskConfiger.cpp +++ b/src/MeoAssistance/TaskConfiger.cpp @@ -19,7 +19,7 @@ bool TaskConfiger::set_param(const std::string& type, const std::string& param, } auto task_info_ptr = m_all_tasks_info[param]; std::string action = value; - std::transform(action.begin(), action.end(), action.begin(), std::tolower); + std::transform(action.begin(), action.end(), action.begin(), ::tolower); if (action == "clickself") { task_info_ptr->action = ProcessTaskAction::ClickSelf; } @@ -53,7 +53,7 @@ bool asst::TaskConfiger::parse(const json::value& json) { for (const auto& [name, task_json] : json.as_object()) { std::string algorithm_str = task_json.get("algorithm", "matchtemplate"); - std::transform(algorithm_str.begin(), algorithm_str.end(), algorithm_str.begin(), std::tolower); + std::transform(algorithm_str.begin(), algorithm_str.end(), algorithm_str.begin(), ::tolower); AlgorithmType algorithm = AlgorithmType::Invaild; if (algorithm_str == "matchtemplate") { algorithm = AlgorithmType::MatchTemplate; @@ -106,7 +106,7 @@ bool asst::TaskConfiger::parse(const json::value& json) task_info_ptr->algorithm = algorithm; task_info_ptr->name = name; std::string action = task_json.at("action").as_string(); - std::transform(action.begin(), action.end(), action.begin(), std::tolower); + std::transform(action.begin(), action.end(), action.begin(), ::tolower); if (action == "clickself") { task_info_ptr->action = ProcessTaskAction::ClickSelf; }