summaryrefslogtreecommitdiff
path: root/Source/Core/Common/Logging
AgeCommit message (Collapse)Author
2026-06-23fmt: Allow building with version >=12.2.0Joshua Vandaële
This change was causing some issues: > Made FMT_STRING a no-op when FMT_USE_CONSTEVAL is enabled, since the consteval format-string constructor already provides compile-time validation (#4611, #4612). Thanks @friedkeenan.
2026-05-03Replace some [[maybe_unused]] annotations with commented namesDentomologist
Remove the [[maybe_unused]] annotation from various parameters that are unconditionally unused and comment out their names instead. This makes it unambiguous that the variables are unused, while making the remaining [[maybe_unused]] annotations more reliable indicators that those variables are in fact used in some contexts. These parameters are mostly in overridden functions where the override doesn't need that particular variable.
2026-03-27LogManager: Remove redundant "(HSP)" in High-Speed Port's log type descritpion.Jordan Woyak
2026-02-15Added Triforce supportcrediar
2026-01-25Remove unused importsMartino Fontana
Yellow squiggly lines begone! Done automatically on .cpp files through `run-clang-tidy`, with manual corrections to the mistakes. If an import is directly used, but is technically unnecessary since it's recursively imported by something else, it is *not* removed. The tool doesn't touch .h files, so I did some of them by hand while fixing errors due to old recursive imports. Not everything is removed, but the cleanup should be substantial enough. Because this done on Linux, code that isn't used on it is mostly untouched. (Hopefully no open PR is depending on these imports...)
2025-09-19Logging: Don't overwrite LDEBUG verbosity in Release buildsDentomologist
Preserve the configured logging verbosity unless the user actually changes it, rather than capping it to LINFO on release builds. Rename LogManager::m_level to m_effective_level and distinguish between the config and effective level in various function/variable names. Make m_effective_level atomic to prevent data races when setting the effective log level from the config changed callback.
2025-06-07Merge pull request #13522 from ↵Jordan Woyak
tygyh/Enforce-overriding-destructor-style-Core&UnitTests Core & UnitTests: Make overriding explicit and remove redundant virtual specifiers on overriding destructors
2025-05-02LogManager: Stop using manual memory managementJosJuice
This fixes a memory leak that would occur when the Android frontend calls LogManager::Init more than once in order to reload settings. Note that the log window listener is now owned by LogManager instead of by the frontend, making it consistent with the other log listeners.
2025-05-01Make overriding explicit and remove redundant virtual specifiers on ↵Dr. Dystopia
overriding destructors - Core & UnitTests
2025-03-15Merge pull request #12866 from JosJuice/android-log-types-sortingJosJuice
Android: Replace log type names map with array
2025-01-04Common: Fix compile failure with fmt>=11Ferdinand Bachmann
2024-06-15Android: Replace log type names map with arrayJosJuice
Storing the log type names in a map results in them getting re-sorted by their keys, which doesn't quite give us the sorting we want. In particular, the Achievements category ended up being sorted at R (for RetroAchivements) instead of at A. Every use of the map is just iterating through it, so there's no real reason why it has to be a map anyway.
2023-09-09Common/LogManager: Add logging category for Achievements.Admiral H. Curtiss
2022-08-23Use `__VA_OPT__(, ) __VA_ARGS__` instead of `##__VA_ARGS__`Pokechu22
Per https://en.cppreference.com/w/cpp/preprocessor/replace#.23_and_.23.23_operators the `##` behavior is a nonstandard extension; this extension seems to be supported by all compilers we care about, but IntelliSense in visual studio doesn't correctly handle it, resulting in false errors in the IDE (but not when compiling). Per https://en.cppreference.com/w/cpp/preprocessor/replace#Function-like_macros C++20 introduced a workaround, where `__VA_OPT__(, )` generates a comma if and only if `__VA_ARGS__` is non-empty. This PR replaces all occurrences, with the exception of Externals, DSPSpy (which is not likely to be edited in MSVC and does not target C++20 currently), and JitArm64_Integer.cpp (which uses `Function(__VA_ARGS__)`, and thus does not ever need a comma).
2022-08-02LogManager: use own timestamp functionShawn Hoffman
2022-07-27Use Dynamic last Log TypeJosh
2022-07-18cubeb: fix logged source file pathsShawn Hoffman
2022-07-02Merge pull request #10624 from Minty-Meeo/resolve-gcc-warningsJosJuice
Resolve Linux GCC Warnings
2022-06-30Resolve GCC WarningsMinty-Meeo
2022-06-24Removed unused variable MAX_MSGLEN in LogManager.cppZopolis4
2022-05-21HW: Initial HSP implementation with ARAM expansionVicki Pfau
2022-05-19Common/LogManager: Remove old printf-style logging functionsPokechu22
2022-05-10fmt: use make_format_args instead of make_args_checkedShawn Hoffman
make_args_checked is deprecated see https://github.com/fmtlib/fmt/pull/2760 and the linked comment
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