diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/StringSetting.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/StringSetting.kt index 2215afb663..43fb1fe0fe 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/StringSetting.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/StringSetting.kt @@ -11,6 +11,7 @@ import org.yuzu.yuzu_emu.utils.NativeConfig enum class StringSetting(override val key: String) : AbstractStringSetting { DRIVER_PATH("driver_path"), DEVICE_NAME("device_name"), + LOG_FILTER("log_filter"), PROGRAM_ARGS("program_args"), WEB_TOKEN("eden_token"), diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SettingsItem.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SettingsItem.kt index 6d46b50051..119d8ddf9e 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SettingsItem.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SettingsItem.kt @@ -1033,6 +1033,13 @@ abstract class SettingsItem( descriptionId = R.string.use_auto_stub_description ) ) + put( + StringInputSetting( + StringSetting.LOG_FILTER, + titleId = R.string.log_filter, + descriptionId = R.string.log_filter_description + ) + ) put( SpinBoxSetting( UShortSetting.DEBUG_KNOBS, diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt index 8e4984efe1..2b5b966021 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt @@ -1323,6 +1323,7 @@ class SettingsFragmentPresenter( add(HeaderSetting(R.string.log)) add(BooleanSetting.DEBUG_FLUSH_BY_LINE.key) + add(StringSetting.LOG_FILTER.key) } add(HeaderSetting(R.string.general)) diff --git a/src/android/app/src/main/res/values/strings.xml b/src/android/app/src/main/res/values/strings.xml index 7cd9c62ff7..3f6d1889ff 100644 --- a/src/android/app/src/main/res/values/strings.xml +++ b/src/android/app/src/main/res/values/strings.xml @@ -636,6 +636,8 @@ Logging Flush debug logs by line Flushes debugging logs on each line written, making debugging easier in cases of crashing or freezing. + Log filter + Controls Eden\'s log categories. Example: *:Info Service.LM:Debug GPU Logging diff --git a/src/yuzu/main_window.cpp b/src/yuzu/main_window.cpp index 934879ade5..27b018d9d9 100644 --- a/src/yuzu/main_window.cpp +++ b/src/yuzu/main_window.cpp @@ -359,6 +359,10 @@ MainWindow::MainWindow(bool has_broken_vulkan) Common::FS::CreateEdenPaths(); this->config = std::make_unique(); + Common::Log::Filter filter; + filter.ParseFilterString(Settings::values.log_filter.GetValue()); + Common::Log::SetGlobalFilter(filter); + if (user_data_migrator.migrated) { // Sort-of hack whereby we only move the old dir if it's a subfolder of the user dir