summaryrefslogtreecommitdiff
path: root/src/core/reporter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/reporter.cpp')
-rw-r--r--src/core/reporter.cpp36
1 files changed, 20 insertions, 16 deletions
diff --git a/src/core/reporter.cpp b/src/core/reporter.cpp
index ec2a16e62..82b0f535a 100644
--- a/src/core/reporter.cpp
+++ b/src/core/reporter.cpp
@@ -195,7 +195,9 @@ json GetHLERequestContextData(Kernel::HLERequestContext& ctx, Core::Memory::Memo
195 195
196namespace Core { 196namespace Core {
197 197
198Reporter::Reporter(System& system_) : system(system_) {} 198Reporter::Reporter(System& system_) : system(system_) {
199 ClearFSAccessLog();
200}
199 201
200Reporter::~Reporter() = default; 202Reporter::~Reporter() = default;
201 203
@@ -362,22 +364,12 @@ void Reporter::SaveErrorReport(u64 title_id, ResultCode result,
362 SaveToFile(std::move(out), GetPath("error_report", title_id, timestamp)); 364 SaveToFile(std::move(out), GetPath("error_report", title_id, timestamp));
363} 365}
364 366
365void Reporter::SaveFilesystemAccessReport(Service::FileSystem::LogMode log_mode, 367void Reporter::SaveFSAccessLog(std::string_view log_message) const {
366 std::string log_message) const { 368 const auto access_log_path =
367 if (!IsReportingEnabled()) 369 Common::FS::GetYuzuPath(Common::FS::YuzuPath::SDMCDir) / "FsAccessLog.txt";
368 return;
369
370 const auto timestamp = GetTimestamp();
371 const auto title_id = system.CurrentProcess()->GetTitleID();
372 json out;
373 370
374 out["yuzu_version"] = GetYuzuVersionData(); 371 void(Common::FS::AppendStringToFile(access_log_path, Common::FS::FileType::TextFile,
375 out["report_common"] = GetReportCommonData(title_id, ResultSuccess, timestamp); 372 log_message));
376
377 out["log_mode"] = fmt::format("{:08X}", static_cast<u32>(log_mode));
378 out["log_message"] = std::move(log_message);
379
380 SaveToFile(std::move(out), GetPath("filesystem_access_report", title_id, timestamp));
381} 373}
382 374
383void Reporter::SaveUserReport() const { 375void Reporter::SaveUserReport() const {
@@ -392,6 +384,18 @@ void Reporter::SaveUserReport() const {
392 GetPath("user_report", title_id, timestamp)); 384 GetPath("user_report", title_id, timestamp));
393} 385}
394 386
387void Reporter::ClearFSAccessLog() const {
388 const auto access_log_path =
389 Common::FS::GetYuzuPath(Common::FS::YuzuPath::SDMCDir) / "FsAccessLog.txt";
390
391 Common::FS::IOFile access_log_file{access_log_path, Common::FS::FileAccessMode::Write,
392 Common::FS::FileType::TextFile};
393
394 if (!access_log_file.IsOpen()) {
395 LOG_ERROR(Common_Filesystem, "Failed to clear the filesystem access log.");
396 }
397}
398
395bool Reporter::IsReportingEnabled() const { 399bool Reporter::IsReportingEnabled() const {
396 return Settings::values.reporting_services; 400 return Settings::values.reporting_services;
397} 401}