summaryrefslogtreecommitdiff
path: root/Source/Core/Common/Logging
AgeCommit message (Collapse)Author
2022-04-09Common/LogManager: Add generic printf-style log function that takes a ↵Admiral H. Curtiss
va_list instead of va_args.
2022-01-25[Android] Fix unused variable warningDentomologist
Add [[maybe_unused]] attribute to ConsoleListener's m_use_color
2022-01-16Use Common::ToLower and Common::ToUpperPokechu22
2021-12-10Treewide: Adjust order of includesPokechu22
2021-10-24Convert LOG_TYPE and LOG_LEVELS to enum classPokechu22
2021-10-15Turn MAX_LOGLEVEL into a true constant (and fix self-comparison warning)Léo Lam
This replaces the MAX_LOGLEVEL define with a constexpr variable in order to fix self-comparison warnings in the logging macros when compiling with Clang. (Without this change, the log level check in the logging macros is expanded into something like this: `if (LINFO <= LINFO)`, which triggers a tautological compare warning.)
2021-10-13Fix all uninitialized variable warnings (C26495)Pokechu22
2021-07-05treewide: convert GPLv2+ license info to SPDX tagsPierre Bourdon
SPDX standardizes how source code conveys its copyright and licensing information. See https://spdx.github.io/spdx-spec/1-rationale/ . SPDX tags are adopted in many large projects, including things like the Linux kernel.
2021-06-07ControllerInterface: DInput Joystick fix non thread safe static variableFiloppi
also fix devices being added to its own custom list of devices even when rejected by the CI
2021-05-05InputCommon: replace SerialInterface log with ControllerInterfaceFiloppi
where appropriate. SerialInterface was a leftover from the past, and makes no sense to be used on actual/real controllers.
2020-12-24Split OSREPORT logging typeMinty-Meeo
The enumerated LOG_TYPE "OSREPORT" is currently used in both EXI_DeviceIPL.cpp and HLE_OS.cpp. In many games, the multitude of game functions detected by HLE_OS.cpp for OSREPORT logging results in poor log readability. This Pull Request remedies that by adding a new enumerated LOG_TYPE "OSREPORT_HLE" for log usage in HLE_OS.cpp. In the future, further changing how logging in HLE_OS.cpp works may be desirable. As it is, game functions are detected that send a single character to the log. This is a major source of poor readability.
2020-11-20Merge pull request #9260 from leoetlino/fmt-checksLéo Lam
Common/Log: Add compile-time format string checks
2020-11-19Common: Validate the number of {} fields in format stringsLéo Lam
Unfortunately, {fmt} allows passing too many arguments to a format call without raising any runtime or compile-time error [1]. As this is a common source of bugs since we started migrating to {fmt}, this commit adds some custom logic to validate the number of replacement fields in format strings in addition to {fmt}'s own checks. [1] https://github.com/fmtlib/fmt/issues/492
2020-11-19Common/Log: Check format stringsLéo Lam
Helps with catching incorrect format strings. PanicAlertFmt already uses FMT_STRING and fmt::make_args_checked.
2020-11-10FrameDump Logging: Separate log type and migrate to fmtaltimumdelta
2020-10-21Common/Log: Add basic fmt-capable functions to the interface.Lioncash
Provides a basic extension to the interface to begin migration off of the printf-based logging system. Everything will go through macros with the same style naming as the old logging system, except the macros will have the _FMT suffix, while the migration is in process. This allows for peacemeal migration over time instead of pulling everything out and replacing it all in a single pull request, which makes for much easier reviewing.
2020-08-02LogManager: Add missing includeRyan Meredith
2020-07-24Android: Add Log Configuration to UIRyan Meredith
2020-07-08Common: Rename UTF16ToUTF8JosJuice
This function does *not* always convert from UTF-16. It converts from UTF-16 on Windows and UTF-32 on other operating systems. Also renaming UTF8ToUTF16 for consistency, even though it technically doesn't have the same problem since it only was implemented on Windows.
2020-06-14Replace some acronymsRyan Meredith
2020-05-02Remove redundant Config prefix from ConfigInfo/ConfigLocationLéo Lam
Both structs are already in the Config namespace.
2019-11-28Common: Unify logging namespace with CommonLioncash
Previously the logging was a in a little bit of a disarray. Some things were in namespaces, and other things were not. Given this code will feature a bit of restructuring during the transition over to fmt, this is a good time to unify it under a single namespace and also remove functions and types from the global namespace. Now, all functions and types are under the Common::Log namespace. The only outliers being, of course, the preprocessor macros.
2019-08-31ConsoleListenerWin: Properly output console logging in UTF-16 so UTF-8 ↵Silent
displays properly
2019-06-14Common: Use fmt where applicableLioncash
Begins the transition to using fmt for string formatting where applicable. Given fmt supports formatting std::string instances out of the box, we can remove now-unnecessary calls to .c_str() and .data(). Note that this change does not touch the actual logging subsystem aside from converting the final StringFromFormat call in the process over to fmt::format. Given our logging system is heavily used throughout the entire codebase, and converting that over will be quite a large change by itself, this will be tackled near the end of the conversion process.
2019-05-11Qt/LogConfigWidget: Show log type short namesLéo Lam
Makes it easier for users to determine which option they need to enable/disable as log messages only show the short name.
2019-05-06Reformat repo to clang-format 7.0 rulesTechjar
2019-03-03Common/Config: Add a utility class to suppress config change callbacks.Jordan Woyak
2018-08-28Fix reducing log paths when building with MSVCJosJuice
The LogManager code had trouble detecting the "/Source/Core/" substring for two reasons, neither of which seemed to happen a few years ago: 1. __FILE__ is in lowercase on MSVC 2. __FILE__ uses backslash as the directory separator on MSVC Fixes https://bugs.dolphin-emu.org/issues/11366
2018-08-11LogManager: Change Master Log short nameVincent Duvert
Change the Master Log short name from “*” to “MASTER”. This fixes saving the master log enable state, as INI files may not start with *.
2018-05-27Common: Remove unnecessary ~9 year old LOGGING preprocessor defineLioncash
This was added in 4bdb4aa0d1c8520488583ba79c9f5ab6e5656eca back in 2009-02-27. The only usage spot of this macro involves the same checks that were used to define that preprocessor macro, so we can simply remove the macro
2018-05-12Config: Fix template deduction for implicit conversionsLéo Lam
This excludes the second argument from template deduction. Otherwise, it is required to manually cast the second argument to the ConfigInfo type (because implicit conversions won't work). e.g. to set the value for a ConfigInfo<std::string> from a string literal, you'd need a ugly `std::string("yourstring")`.
2018-04-16Common/Logging/Log: Wrap GENERIC_LOG macro's body in do { } while (0)Lioncash
Enforces the termination of GENERIC_LOGs with semicolons.
2018-04-12Reformat all the things!spycrab
2018-03-31Log: Rename IOS_FILEIO to IOS_FSLéo Lam
Let's use the actual name of the system module. Also, the FS code is not all about files.
2018-03-31IOS: Rewrite FS to use FileSystemLéo Lam
This is the large change in the branch. This lets us use either the host filesystem or (in the future) a NAND image exactly the same way, and make sure the IPC emulation code behaves identically. Less duplicated code. Note that "FileIO" and "FS" were merged, because it actually doesn't make a lot of sense to split them: IOS handles requests for both /dev/fs and files in the same resource manager, and as it turns out, /dev/fs commands can *also* be sent to non /dev/fs file descriptors! If we kept /dev/fs and files split, there would be no way to emulate that correctly. I'm not aware of anything that does that (yet?) but I think it's important to be correct.
2018-03-22Add a log type for Symbols and move symbols related logs to italdelaro5
This fix the awkwardness of having the symbols detection, parsing and loading related logs be in OS HLE while they don't have anything to do with that.
2017-08-22Remove NonCopyableJosJuice
The class NonCopyable is, like the name says, supposed to disallow copying. But should it allow moving? For a long time, NonCopyable used to not allow moving. (It declared a deleted copy constructor and assigment operator without declaring a move constructor and assignment operator, making the compiler implicitly delete the move constructor and assignment operator.) That's fine if the classes that inherit from NonCopyable don't need to be movable or if writing the move constructor and assignment operator by hand is fine, but that's not the case for all classes, as I discovered when I was working on the DirectoryBlob PR. Because of that, I decided to make NonCopyable movable in c7602cc, allowing me to use NonCopyable in DirectoryBlob.h. That was however an unfortunate decision, because some of the classes that inherit from NonCopyable have incorrect behavior when moved by default- generated move constructors and assignment operators, and do not explicitly delete the move constructors and assignment operators, relying on NonCopyable being non-movable. So what can we do about this? There are four solutions that I can think of: 1. Make NonCopyable non-movable and tell DirectoryBlob to suck it. 2. Keep allowing moving NonCopyable, and expect that classes that don't support moving will delete the move constructor and assignment operator manually. Not only is this inconsistent (having classes disallow copying one way and disallow moving another way), but deleting the move constructor and assignment operator manually is too easy to forget compared to how tricky the resulting problems are. 3. Have one "MovableNonCopyable" and one "NonMovableNonCopyable". It works, but it feels rather silly... 4. Don't have a NonCopyable class at all. Considering that deleting the copy constructor and assignment operator only takes two lines of code, I don't see much of a reason to keep NonCopyable. I suppose that there was more of a point in having NonCopyable back in the pre-C++11 days, when it wasn't possible to use "= delete". I decided to go with the fourth one (like the commit title says). The implementation of the commit is fairly straight-forward, though I would like to point out that I skipped adding "= delete" lines for classes whose only reason for being uncopyable is that they contain uncopyable classes like File::IOFile and std::unique_ptr, because the compiler makes such classes uncopyable automatically.
2017-08-16WFS: Use a separate log type for WFS related logsLéo Lam
Makes it easier to turn off general IOS messages that can be distracting (e.g. /dev/net/ssl being opened hundreds of time...) without losing the ability to view WFS messages.
2017-07-27LogManager: remove stand-alone semicolonligfx
My bad!
2017-07-09LogManager: use layered configMichael Maltese
2017-07-09remove commented-out FileLogListener::GetNameMichael Maltese
2017-07-07LogManager: add SaveSettingsMichael Maltese
2017-07-07LogManager: make LogContainer a POD and don't allocateMichael Maltese
2017-07-07LogManager: remove per-container listenersMichael Maltese
2017-07-07LogManager: remove per-container verbositiesMichael Maltese
2017-07-07LogManager: clean up headerMichael Maltese
2017-06-17LogManager: Check if listener is valid before using itLéo Lam
2017-06-17Logging: Remove duplicated codeLéo Lam
2017-06-17Logging: Move verbosity setting code to LogManagerLéo Lam
No clue why it was in DolphinWX.
2017-06-15Add a namespace to OpenFStreamJosJuice
For consistency with the other functions in FileUtil.h.