aboutsummaryrefslogtreecommitdiff
path: root/src/common/logging/backend.cpp
Commit message (Collapse)AuthorAgeFilesLines
* logging: Fix log filter during initializationameerj2021-08-241-4/+5
| | | | | | The log filter was being ignored on initialization due to the logging instance being initialized before the config instance, so the log filter was set to its default value. This fixes that oversight, along with using descriptive exceptions instead of abort() calls.
* logging: Simplify and make thread-safeyzct123452021-08-131-139/+211
| | | | | | | | | This simplifies the logging system. This also fixes some lost messages on startup. The simplification is simple. I removed unused functions and moved most things in the .h to the .cpp. I replaced the unnecessary linked list with its contents laid out as three member variables. Anything that went through the linked list now directly accesses the backends. Generic functions are replaced with those for each specific use case and there aren't many. This change increases coupling but we gain back more KISS and encapsulation. With those changes it was easy to make it thread-safe. I just removed the mutex and turned a boolean atomic. I was planning to use this thread-safety in my next PR about stacktraces. It was actually async-signal-safety at first but I ended up using a different approach. Anyway getting rid of the linked list is important for that because have the list of backends constantly changing complicates things.
* common: logging: backend: Close the file after exceeding the write limitMorph2021-07-061-8/+11
| | | | There's no point in keeping the file open after the write limit is exceeded. This allows the file to be committed to the disk shortly after it is closed and avoids redundantly checking whether or not the write limit is exceeded.
* common: Replace common_sizes into user-literalsWunkolo2021-06-241-4/+7
| | | | | | | | | | | | | Removes common_sizes.h in favor of having `_KiB`, `_MiB`, `_GiB`, etc user-literals within literals.h. To keep the global namespace clean, users will have to use: ``` using namespace Common::Literals; ``` to access these literals.
* common: fs: file: Remove [[nodiscard]] attribute from FlushMorph2021-06-221-1/+1
| | | | Similarly, Flush() is typically called to attempt to flush a file into the disk. In the one case where this is used, we do not care whether the flush has succeeded or not, making [[nodiscard]] unnecessary.
* common: fs: Remove [[nodiscard]] attribute on Remove* functionsMorph2021-06-221-1/+1
| | | | | | There are a lot of scenarios where we don't particularly care whether or not the removal operation and just simply attempt a removal. As such, removing the [[nodiscard]] attribute is best for these functions.
* common: logging: Restructure backend codeMorph2021-06-131-129/+0
|
* common: logging: backend: Wrap IOFile in a unique_ptrMorph2021-06-131-4/+14
| | | | Allows us to forward declare Common::FS::IOFile.
* common: fs: Rework the Common Filesystem interface to make use of ↵Morph2021-05-251-15/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | std::filesystem (#6270) * common: fs: fs_types: Create filesystem types Contains various filesystem types used by the Common::FS library * common: fs: fs_util: Add std::string to std::u8string conversion utility * common: fs: path_util: Add utlity functions for paths Contains various utility functions for getting or manipulating filesystem paths used by the Common::FS library * common: fs: file: Rewrite the IOFile implementation * common: fs: Reimplement Common::FS library using std::filesystem * common: fs: fs_paths: Add fs_paths to replace common_paths * common: fs: path_util: Add the rest of the path functions * common: Remove the previous Common::FS implementation * general: Remove unused fs includes * string_util: Remove unused function and include * nvidia_flags: Migrate to the new Common::FS library * settings: Migrate to the new Common::FS library * logging: backend: Migrate to the new Common::FS library * core: Migrate to the new Common::FS library * perf_stats: Migrate to the new Common::FS library * reporter: Migrate to the new Common::FS library * telemetry_session: Migrate to the new Common::FS library * key_manager: Migrate to the new Common::FS library * bis_factory: Migrate to the new Common::FS library * registered_cache: Migrate to the new Common::FS library * xts_archive: Migrate to the new Common::FS library * service: acc: Migrate to the new Common::FS library * applets/profile: Migrate to the new Common::FS library * applets/web: Migrate to the new Common::FS library * service: filesystem: Migrate to the new Common::FS library * loader: Migrate to the new Common::FS library * gl_shader_disk_cache: Migrate to the new Common::FS library * nsight_aftermath_tracker: Migrate to the new Common::FS library * vulkan_library: Migrate to the new Common::FS library * configure_debug: Migrate to the new Common::FS library * game_list_worker: Migrate to the new Common::FS library * config: Migrate to the new Common::FS library * configure_filesystem: Migrate to the new Common::FS library * configure_per_game_addons: Migrate to the new Common::FS library * configure_profile_manager: Migrate to the new Common::FS library * configure_ui: Migrate to the new Common::FS library * input_profiles: Migrate to the new Common::FS library * yuzu_cmd: config: Migrate to the new Common::FS library * yuzu_cmd: Migrate to the new Common::FS library * vfs_real: Migrate to the new Common::FS library * vfs: Migrate to the new Common::FS library * vfs_libzip: Migrate to the new Common::FS library * service: bcat: Migrate to the new Common::FS library * yuzu: main: Migrate to the new Common::FS library * vfs_real: Delete the contents of an existing file in CreateFile Current usages of CreateFile expect to delete the contents of an existing file, retain this behavior for now. * input_profiles: Don't iterate the input profile dir if it does not exist Silences an error produced in the log if the directory does not exist. * game_list_worker: Skip parsing file if the returned VfsFile is nullptr Prevents crashes in GetLoader when the virtual file is nullptr * common: fs: Validate paths for path length * service: filesystem: Open the mod load directory as read only
* log/backend: Use in-class initializer for FileBackendLioncash2021-04-201-4/+6
| | | | We can also avoid redundant constructions of the same string repeatedly.
* log/backend: Make use of erase_ifLioncash2021-04-201-4/+4
| | | | Same behavior, but less verbose.
* Merge pull request #6199 from lioncash/log-nsbunnei2021-04-141-11/+14
|\ | | | | common/log: Move Log namespace into the Common namespace
| * log/backend: Correct order of const in copy constructorLioncash2021-04-141-2/+5
| | | | | | | | | | Follows our predominant coding style. Also explicitly specifies the move constructor/assignment operator as well.
| * common/log: Move Log namespace into the Common namespaceLioncash2021-04-141-9/+9
| | | | | | | | | | Forgot to move this over when I moved the rest of the source files with lacking namespaces over.
* | common: Move settings to common from core.bunnei2021-04-141-1/+1
|/ | | | - Removes a dependency on core and input_common from common.
* bgtc: Update to 12.x and implement OpenTaskServiceMorph2021-04-091-0/+1
|
* Address review commentsFearlessTobi2021-01-041-5/+5
|
* Delete the old log file before rotating (#5675)xperia642021-01-041-0/+3
|
* Fix the old log file to work with the log parser.bunnei2021-01-031-1/+1
|
* Rotate previous log file to '.old' if it existsxperia642021-01-031-4/+9
|
* Merge pull request #4451 from slashiee/extended-loggingbunnei2020-11-231-2/+12
|\ | | | | logging/settings: Increase maximum log size to 100 MB and add extended logging option
| * logging/settings: Increase maximum log size to 100 MB and add extended ↵M&M2020-08-241-2/+12
| | | | | | | | | | | | | | logging option The extended logging option is automatically disabled on boot but can be enabled afterwards, allowing the log file to go up to 1 GB during that session. This commit also fixes a few errors that are present in the general debug menu.
* | hle: service: Stub OLSC Initialize and SetSaveDataBackupSettingEnabled ↵bunnei2020-11-191-0/+1
| | | | | | | | | | | | functions. - Used by Animal Cross: New Horizons v1.6.0 update, minimal stub gets this update working.
* | common: Enable warnings as errorsLioncash2020-11-021-2/+0
|/ | | | Cleans up common so that we can enable warnings as errors.
* logging/backend: Make use of designated initializersLioncash2020-08-031-11/+11
| | | | Same behavior, less code.
* common/logging: don't use regex for path trimmingBreadFish642020-01-231-1/+1
|
* common/logging: Silence no return value warningsReinUsesLisp2019-11-151-2/+6
|
* log: Add logging class for Cheat EngineZach Hilman2019-09-211-0/+1
| | | This is better than just using something like Common.Filesystem or Common.Memory
* general: Use deducation guides for std::lock_guard and std::unique_lockLioncash2019-04-011-3/+3
| | | | | | | Since C++17, the introduction of deduction guides for locking facilities means that we no longer need to hardcode the mutex type into the locks themselves, making it easier to switch mutex types, should it ever be necessary in the future.
* logging/backend: Make time_origin a class variable instead of a local staticLioncash2019-03-021-2/+1
| | | | | | | | | Moves local global state into the Impl class itself and initializes it at the creation of the instance instead of in the function. This makes it nicer for weakly-ordered architectures, given the CreateEntry() class won't need to have atomic loads executed for each individual call to the CreateEntry class.
* logging/backend: Move CreateEntry into the Impl classLioncash2019-03-021-25/+26
| | | | | This function is only ever used within this source file and makes it easier to remove static state in the following change.
* Adressed review commentsB3n302019-02-151-1/+2
|
* threadsafe_queue: Add WaitIfEmpty and use it in loggingB3n302019-02-151-13/+7
|
* logging: Add Vulkan backend logging class typeReinUsesLisp2019-02-121-0/+1
|
* Backport review comment from citra-emu/citra#4418Tobias2018-12-071-2/+2
| | | | Original reason: As Windows multi-byte character codec is unspecified while we always assume std::string uses UTF-8 in our code base, this can output gibberish when the string contains non-ASCII characters. ::OutputDebugStringW combined with Common::UTF8ToUTF16W is preferred here.
* Merge pull request #1441 from CarlKenner/DebuggerLogbunnei2018-11-051-2/+9
|\ | | | | logging: Add DebuggerBackend for logging to Visual Studio
| * logging: Add DebuggerBackend for logging to Visual StudioCarl Kenner2018-10-071-2/+9
| |
* | logging/backend: Add missing services to the log filtersLioncash2018-10-231-0/+3
|/ | | | Just a few overlooked services.
* Stubbed IRS (#1349)David2018-09-231-0/+1
| | | | | | | | | | * Stubbed IRS Currently we have no ideal way of implementing IRS. For the time being we should have the functions stubbed until we come up with a way to emulate IRS properly. * Added IRS to logging backend * Forward declared shared memory for irs
* Port #4182 from Citra: "Prefix all size_t with std::"fearlessTobi2018-09-151-1/+1
|
* logging/backend: Use const reference to refer to log filterLioncash2018-08-131-2/+3
| | | | | | The filter is returned via const reference, so this was making a pointless copy of the entire filter every time a message was being pushed into the logger instance.
* common/logging: Add missing service log categoriesLioncash2018-08-081-0/+8
| | | | These weren't added when the services were introduced.
* service: Add usb servicesLioncash2018-08-071-0/+1
| | | | Adds basic skeleton for the usb services based off the information provided by Switch Brew.
* service: Add arp servicesLioncash2018-08-041-0/+1
| | | | | Adds the basic skeleton of the arp services based off the information provided by Switch Brew.
* Merge pull request #849 from DarkLordZach/xcibunnei2018-08-041-0/+1
|\ | | | | XCI and Encrypted NCA Support
| * Remove files that are not usedZach Hilman2018-08-011-0/+1
| |
* | Merge pull request #898 from lioncash/migbunnei2018-08-031-0/+1
|\ \ | | | | | | service: Add migration services
| * | service: Add migration servicesLioncash2018-08-021-0/+1
| | | | | | | | | | | | | | | Adds the basic skeleton for the mig:usr service based off information provided by Switch Brew.
* | | service: Add psc servicesLioncash2018-08-011-0/+1
|/ / | | | | | | | | Adds the basic skeleton for the psc services based off the information provided by Switch Brew.
* | Merge pull request #888 from lioncash/capsbunnei2018-08-011-0/+1
|\ \ | | | | | | service: Add capture services