mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 05:40:04 +00:00 
			
		
		
		
	Merge pull request #4575 from BreadFish64/android6
android: add logging
This commit is contained in:
		
						commit
						fd7730e7c8
					
				
					 18 changed files with 381 additions and 42 deletions
				
			
		|  | @ -543,11 +543,12 @@ std::string GetCurrentDir() { | |||
| // Get the current working directory (getcwd uses malloc)
 | ||||
| #ifdef _WIN32 | ||||
|     wchar_t* dir; | ||||
|     if (!(dir = _wgetcwd(nullptr, 0))) { | ||||
|     if (!(dir = _wgetcwd(nullptr, 0))) | ||||
| #else | ||||
|     char* dir; | ||||
|     if (!(dir = getcwd(nullptr, 0))) { | ||||
|     if (!(dir = getcwd(nullptr, 0))) | ||||
| #endif | ||||
|     { | ||||
|         LOG_ERROR(Common_Filesystem, "GetCurrentDirectory failed: {}", GetLastErrorMsg()); | ||||
|         return nullptr; | ||||
|     } | ||||
|  | @ -695,6 +696,8 @@ void SetUserPath(const std::string& path) { | |||
| 
 | ||||
|         g_paths.emplace(UserPath::ConfigDir, user_path + CONFIG_DIR DIR_SEP); | ||||
|         g_paths.emplace(UserPath::CacheDir, user_path + CACHE_DIR DIR_SEP); | ||||
| #elif ANDROID | ||||
|         ASSERT_MSG(false, "Specified path {} is not valid", path); | ||||
| #else | ||||
|         if (FileUtil::Exists(ROOT_DIR DIR_SEP USERDATA_DIR)) { | ||||
|             user_path = ROOT_DIR DIR_SEP USERDATA_DIR DIR_SEP; | ||||
|  |  | |||
|  | @ -8,6 +8,7 @@ | |||
| #include <condition_variable> | ||||
| #include <memory> | ||||
| #include <mutex> | ||||
| #include <regex> | ||||
| #include <thread> | ||||
| #include <vector> | ||||
| #ifdef _WIN32 | ||||
|  | @ -253,13 +254,15 @@ Entry CreateEntry(Class log_class, Level log_level, const char* filename, unsign | |||
|     using std::chrono::duration_cast; | ||||
|     using std::chrono::steady_clock; | ||||
| 
 | ||||
|     // matches from the beginning up to the last '../' or 'src/'
 | ||||
|     static const std::regex trim_source_path(R"(.*([\/\\]|^)((\.\.)|(src))[\/\\])"); | ||||
|     static steady_clock::time_point time_origin = steady_clock::now(); | ||||
| 
 | ||||
|     Entry entry; | ||||
|     entry.timestamp = duration_cast<std::chrono::microseconds>(steady_clock::now() - time_origin); | ||||
|     entry.log_class = log_class; | ||||
|     entry.log_level = log_level; | ||||
|     entry.filename = Common::TrimSourcePath(filename); | ||||
|     entry.filename = std::regex_replace(filename, trim_source_path, ""); | ||||
|     entry.line_num = line_nr; | ||||
|     entry.function = function; | ||||
|     entry.message = std::move(message); | ||||
|  |  | |||
|  | @ -209,26 +209,4 @@ std::string StringFromFixedZeroTerminatedBuffer(const char* buffer, std::size_t | |||
| 
 | ||||
|     return std::string(buffer, len); | ||||
| } | ||||
| 
 | ||||
| const char* TrimSourcePath(const char* path, const char* root) { | ||||
|     const char* p = path; | ||||
| 
 | ||||
|     while (*p != '\0') { | ||||
|         const char* next_slash = p; | ||||
|         while (*next_slash != '\0' && *next_slash != '/' && *next_slash != '\\') { | ||||
|             ++next_slash; | ||||
|         } | ||||
| 
 | ||||
|         bool is_src = Common::ComparePartialString(p, next_slash, root); | ||||
|         p = next_slash; | ||||
| 
 | ||||
|         if (*p != '\0') { | ||||
|             ++p; | ||||
|         } | ||||
|         if (is_src) { | ||||
|             path = p; | ||||
|         } | ||||
|     } | ||||
|     return path; | ||||
| } | ||||
| } // namespace Common
 | ||||
|  |  | |||
|  | @ -64,16 +64,4 @@ bool ComparePartialString(InIt begin, InIt end, const char* other) { | |||
|  */ | ||||
| std::string StringFromFixedZeroTerminatedBuffer(const char* buffer, std::size_t max_len); | ||||
| 
 | ||||
| /**
 | ||||
|  * Attempts to trim an arbitrary prefix from `path`, leaving only the part starting at `root`. It's | ||||
|  * intended to be used to strip a system-specific build directory from the `__FILE__` macro, | ||||
|  * leaving only the path relative to the sources root. | ||||
|  * | ||||
|  * @param path The input file path as a null-terminated string | ||||
|  * @param root The name of the root source directory as a null-terminated string. Path up to and | ||||
|  *             including the last occurrence of this name will be stripped | ||||
|  * @return A pointer to the same string passed as `path`, but starting at the trimmed portion | ||||
|  */ | ||||
| const char* TrimSourcePath(const char* path, const char* root = "src"); | ||||
| 
 | ||||
| } // namespace Common
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue