Merge pull request #105 from Snapmaker/dev_bury_point_alves

feature update the bury point report style
This commit is contained in:
Alves
2026-01-07 16:10:52 +08:00
committed by GitHub
7 changed files with 169 additions and 55 deletions

View File

@@ -81,7 +81,7 @@ endif()
Snapmaker_Orca_add_cmake_project(Sentry
GIT_REPOSITORY https://github.com/getsentry/sentry-native.git
GIT_TAG 0.12.1
GIT_TAG 0.12.2
GIT_SHALLOW ON
PATCH_COMMAND ${SENTRY_PATCH_COMMAND}
CMAKE_ARGS

View File

@@ -100,8 +100,8 @@ namespace common
}
nlohmann::json json_data;
json_file >> json_data;
std::string str_version = json_data["version"];
std::string str_build_number = json_data["build_number"];
std::string str_version = json_data.value("version", "");
std::string str_build_number = json_data.value("build_number", "");
std::string flutter_version = std::string("flutter_version: ") + str_version + std::string(" ") + std::string("build_number: ") +
str_build_number;
@@ -109,4 +109,73 @@ namespace common
return flutter_version;
}
std::string getLocalArea()
{
std::string localArea = "";
std::string cfgfile = "";
#ifdef _WIN32
wchar_t appDataPath[MAX_PATH] = {0};
auto hr = SHGetFolderPathW(NULL, CSIDL_APPDATA, NULL, SHGFP_TYPE_CURRENT, appDataPath);
char* path = new char[MAX_PATH];
size_t pathLength;
wcstombs_s(&pathLength, path, MAX_PATH, appDataPath, MAX_PATH);
std::string filePath = path;
cfgfile = filePath + "\\" + std::string("Snapmaker_Orca\\Snapmaker_Orca.conf");
#elif __APPLE__
const char* home_env = getenv("HOME");
cfgfile = home_env;
cfgfile = versionFilePath + "/Library/Application Support/Snapmaker_Orca/Snapmaker_Orca.conf";
#else
#endif
std::ifstream json_file(cfgfile);
if (!json_file.is_open()) {
std::ifstream json_file(cfgfile);
return "";
}
nlohmann::json json_data;
json_file >> json_data;
auto dataObj = json_data.value("app", nlohmann::json::object());
localArea = dataObj.value("region", "");
return localArea;
}
std::string getLanguage()
{
std::string localLanguage = "";
std::string cfgfile = "";
#ifdef _WIN32
wchar_t appDataPath[MAX_PATH] = {0};
auto hr = SHGetFolderPathW(NULL, CSIDL_APPDATA, NULL, SHGFP_TYPE_CURRENT, appDataPath);
char* path = new char[MAX_PATH];
size_t pathLength;
wcstombs_s(&pathLength, path, MAX_PATH, appDataPath, MAX_PATH);
std::string filePath = path;
cfgfile = filePath + "\\" + std::string("Snapmaker_Orca\\Snapmaker_Orca.conf");
#elif __APPLE__
const char* home_env = getenv("HOME");
cfgfile = home_env;
cfgfile = versionFilePath + "/Library/Application Support/Snapmaker_Orca/Snapmaker_Orca.conf";
#else
#endif
std::ifstream json_file(cfgfile);
if (!json_file.is_open()) {
std::ifstream json_file(cfgfile);
return "";
}
nlohmann::json json_data;
json_file >> json_data;
auto dataObj = json_data.value("app", nlohmann::json::object());
localLanguage = dataObj.value("language", "");
return localLanguage;
}
}

View File

@@ -25,6 +25,10 @@ namespace common
std::string getMachineId();
std::string getLocalArea();
std::string getLanguage();
} // namespace common
#endif

View File

@@ -55,10 +55,13 @@ static sentry_value_t on_crash_callback(const sentry_ucontext_t* uctx, sentry_va
return event;
}
static sentry_value_t before_send_log(sentry_value_t log, void* user_dataa)
{
return log;
}
static sentry_value_t before_send(sentry_value_t event, void* hint, void* data)
{
sentry_value_t level_val = sentry_value_get_by_key(event, SENTRY_KEY_LEVEL);
std::string levelName = sentry_value_as_string(level_val);
@@ -123,11 +126,6 @@ void initSentryEx()
sentry_options_t* options = sentry_options_new();
std::string dsn = std::string("https://c74b617c2aedc291444d3a238d23e780@o4508125599563776.ingest.us.sentry.io/4510425163956224");
{
#ifdef __APPLE__
#elif _WIN32
#endif
sentry_options_set_dsn(options, dsn.c_str());
std::string handlerDir = "";
std::string dataBaseDir = "";
@@ -198,7 +196,7 @@ void initSentryEx()
sentry_options_set_debug(options, 0);
#endif
// sentry_options_set_environment(options, "develop");
//sentry_options_set_environment(options, "develop");
sentry_options_set_environment(options, "Release");
sentry_options_set_auto_session_tracking(options, 0);
@@ -209,6 +207,10 @@ void initSentryEx()
sentry_options_set_sample_rate(options, 1.0);
sentry_options_set_traces_sample_rate(options, 1.0);
sentry_options_set_enable_logs(options, 1);
sentry_options_set_before_send_log(options, before_send_log, NULL);
sentry_options_set_logs_with_attributes(options, true);
sentry_init(options);
sentry_start_session();
@@ -233,55 +235,92 @@ void exitSentryEx()
sentry_close();
}
void sentryReportLogEx(SENTRY_LOG_LEVEL logLevel,
const std::string& logContent,
const std::string& funcModule,
const std::string& logTagKey,
const std::string& logTagValue,
const std::string& logTraceId)
const std::string& logContent,
const std::string& funcModule,
const std::string& logTagKey,
const std::string& logTagValue,
const std::string& logTraceId)
{
sentry_level_t sentry_msg_level;
switch (logLevel)
{
case SENTRY_LOG_TRACE:
sentry_msg_level = SENTRY_LEVEL_TRACE;
break;
case SENTRY_LOG_DEBUG:
sentry_msg_level = SENTRY_LEVEL_DEBUG;
break;
case SENTRY_LOG_INFO:
sentry_msg_level = SENTRY_LEVEL_INFO;
break;
case SENTRY_LOG_WARNING:
sentry_msg_level = SENTRY_LEVEL_WARNING;
break;
case SENTRY_LOG_ERROR:
sentry_msg_level = SENTRY_LEVEL_ERROR;
break;
case SENTRY_LOG_FATAL:
sentry_msg_level = SENTRY_LEVEL_FATAL;
break;
default:
if (!get_privacy_policy()) {
return;
}
sentry_value_t event = sentry_value_new_message_event(sentry_msg_level,
funcModule.c_str(),
logContent.c_str()
);
sentry_level_t sentry_msg_level;
sentry_value_t tags = sentry_value_new_object();
sentry_value_t tags = sentry_value_new_object();
if (!funcModule.empty()) {
sentry_value_t attr = sentry_value_new_attribute(sentry_value_new_string(funcModule.c_str()), NULL);
sentry_value_set_by_key(tags, "function_module", attr);
}
if (!logTraceId.empty())
sentry_value_set_by_key(tags, "snapmaker_trace_id", sentry_value_new_string(logTraceId.c_str()));
if (!logTraceId.empty()) {
sentry_value_t attr = sentry_value_new_attribute(sentry_value_new_string(logTraceId.c_str()), NULL);
sentry_value_set_by_key(tags, "snapmaker_trace_id", attr);
}
if (SENTRY_LEVEL_TRACE == sentry_msg_level)
sentry_value_set_by_key(tags, BURY_POINT, sentry_value_new_string("snapmaker_bury_point"));
if (!logTagKey.empty())
sentry_value_set_by_key(tags, logTagKey.c_str(), sentry_value_new_string(logTagValue.c_str()));
if (!logTagKey.empty()) {
sentry_value_t attr = sentry_value_new_attribute(sentry_value_new_string(logTagValue.c_str()), NULL);
sentry_value_set_by_key(tags, logTagKey.c_str(), attr);
}
sentry_value_set_by_key(event, "snapmaker_tags", tags);
sentry_capture_event(event);
sentry_value_t attr = sentry_value_new_attribute(sentry_value_new_string(Snapmaker_VERSION), NULL);
sentry_value_set_by_key(tags, "snapmaker_version", attr);
std::string flutterVersion = common::get_flutter_version();
if (!flutterVersion.empty()) {
sentry_value_t attr = sentry_value_new_attribute(sentry_value_new_string(flutterVersion.c_str()), NULL);
sentry_value_set_by_key(tags, "flutter_version", attr);
}
std::string pcName = common::get_pc_name();
if (!pcName.empty()) {
sentry_value_t attr = sentry_value_new_attribute(sentry_value_new_string(pcName.c_str()), NULL);
sentry_value_set_by_key(tags, "pc_name", attr);
}
std::string machineID = common::getMachineId();
if (!machineID.empty()) {
sentry_value_t attr = sentry_value_new_attribute(sentry_value_new_string(machineID.c_str()), NULL);
sentry_value_set_by_key(tags, "machine_id", attr);
}
std::string currentLanguage = common::getLanguage();
if (!currentLanguage.empty()) {
sentry_value_t attr = sentry_value_new_attribute(sentry_value_new_string(currentLanguage.c_str()), NULL);
sentry_value_set_by_key(tags, "current_language", attr);
}
std::string localArea = common::getLocalArea();
if (!localArea.empty())
{
sentry_value_t attr = sentry_value_new_attribute(sentry_value_new_string(localArea.c_str()), NULL);
sentry_value_set_by_key(tags, "local_area", attr);
}
switch (logLevel) {
case SENTRY_LOG_TRACE:
sentry_msg_level = SENTRY_LEVEL_TRACE;
sentry_value_t attr = sentry_value_new_attribute(sentry_value_new_string("snapmaker_bury_point"), NULL);
sentry_value_set_by_key(tags, BURY_POINT, attr);
sentry_log_trace(logContent.c_str(), tags);
break;
case SENTRY_LOG_DEBUG:
sentry_msg_level = SENTRY_LEVEL_DEBUG;
sentry_log_debug(logContent.c_str(), tags);
break;
case SENTRY_LOG_INFO:
sentry_msg_level = SENTRY_LEVEL_INFO;
sentry_log_info(logContent.c_str(), tags);
break;
case SENTRY_LOG_WARNING:
sentry_msg_level = SENTRY_LEVEL_WARNING;
sentry_log_warn(logContent.c_str(), tags);
break;
case SENTRY_LOG_ERROR:
sentry_msg_level = SENTRY_LEVEL_ERROR;
sentry_log_error(logContent.c_str(), tags);
break;
case SENTRY_LOG_FATAL:
sentry_msg_level = SENTRY_LEVEL_FATAL;
sentry_log_fatal(logContent.c_str(), tags);
break;
default: return;
}
}

View File

@@ -7072,7 +7072,7 @@ bool GUI_App::run_wizard(ConfigWizard::RunReason reason, ConfigWizard::StartPage
auto isAgree = wxGetApp().app_config->get("app", "privacy_policy_isagree");
set_privacy_policy(isAgree == "true");
BOOST_LOG_TRIVIAL(warning) << "run_wizard changed the privacy policy with: " << (isAgree);
return res;
}
@@ -7292,7 +7292,7 @@ bool GUI_App::config_wizard_startup()
{
auto isAgree = wxGetApp().app_config->get("app", "privacy_policy_isagree");
set_privacy_policy(isAgree == "true");
BOOST_LOG_TRIVIAL(warning) << "config_wizard_startup changed the privacy policy with: " << (isAgree);
if (!m_app_conf_exists || preset_bundle->printers.only_default_printers()) {
BOOST_LOG_TRIVIAL(info) << "run wizard...";
run_wizard(ConfigWizard::RR_DATA_EMPTY);

View File

@@ -750,7 +750,8 @@ wxBoxSizer *PreferencesDialog::create_item_checkbox(wxString title, wxWindow *pa
if (param == "privacy_policy_isagree")
{
app_config->set("app", "privacy_policy_isagree", checkbox->GetValue());
app_config->set("app", "privacy_policy_isagree", checkbox->GetValue());
BOOST_LOG_TRIVIAL(warning) <<"create_item_checkbox changed the privacy policy with: "<<(checkbox->GetValue()?"true" : "false");
set_privacy_policy(checkbox->GetValue());
}
// if (param == "staff_pick_switch") {

View File

@@ -650,6 +650,7 @@ int GuideFrame::SaveProfile()
// } else
// m_MainPtr->app_config->set(std::string(m_SectionName.mb_str()), "privacyuse", "0");
m_MainPtr->app_config->set("app", "privacy_policy_isagree", PrivacyUse);
BOOST_LOG_TRIVIAL(warning) << "SaveProfile changed the privacy policy with: " << (PrivacyUse ? "true" : "false");
set_privacy_policy(PrivacyUse);
m_MainPtr->app_config->set("region", m_Region);
m_MainPtr->app_config->set_bool("stealth_mode", StealthMode);