diff --git a/obs/data/locale/en-US.ini b/obs/data/locale/en-US.ini
index 9cd1579d9..5a2e07c30 100644
--- a/obs/data/locale/en-US.ini
+++ b/obs/data/locale/en-US.ini
@@ -174,6 +174,7 @@ Basic.MainMenu.Edit.Order.MoveToBottom="Move to &Bottom"
# basic mode help menu
Basic.MainMenu.Help="&Help"
Basic.MainMenu.Help.Logs="&Log Files"
+Basic.MainMenu.Help.Logs.ShowLogs="&Show Log Files"
Basic.MainMenu.Help.Logs.UploadCurrentLog="Upload &Current Log File"
Basic.MainMenu.Help.Logs.UploadLastLog="Upload &Last Log File"
Basic.MainMenu.Help.CheckForUpdates="Check For Updates"
diff --git a/obs/forms/OBSBasic.ui b/obs/forms/OBSBasic.ui
index 6fddcb9be..bb5434d56 100644
--- a/obs/forms/OBSBasic.ui
+++ b/obs/forms/OBSBasic.ui
@@ -470,6 +470,7 @@
Basic.MainMenu.Help.Logs
+
@@ -660,6 +661,11 @@
Basic.MainMenu.File.Exit
+
+
+ Basic.MainMenu.Help.Logs.ShowLogs
+
+
Basic.MainMenu.Help.Logs.UploadLastLog
diff --git a/obs/window-basic-main.cpp b/obs/window-basic-main.cpp
index f36063427..5d6d40a2a 100644
--- a/obs/window-basic-main.cpp
+++ b/obs/window-basic-main.cpp
@@ -1787,6 +1787,13 @@ void OBSBasic::UploadLog(const char *file)
dstr_free(&fileString);
}
+void OBSBasic::on_actionShowLogs_triggered()
+{
+ BPtr logDir(os_get_config_path("obs-studio/logs"));
+ QUrl url = QUrl::fromLocalFile(QT_UTF8(logDir));
+ QDesktopServices::openUrl(url);
+}
+
void OBSBasic::on_actionUploadCurrentLog_triggered()
{
UploadLog(App()->GetCurrentLog());
diff --git a/obs/window-basic-main.hpp b/obs/window-basic-main.hpp
index 9dc24e6c1..2d0584fd4 100644
--- a/obs/window-basic-main.hpp
+++ b/obs/window-basic-main.hpp
@@ -229,6 +229,7 @@ private slots:
void on_action_Save_triggered();
void on_actionShow_Recordings_triggered();
void on_action_Settings_triggered();
+ void on_actionShowLogs_triggered();
void on_actionUploadCurrentLog_triggered();
void on_actionUploadLastLog_triggered();
void on_actionCheckForUpdates_triggered();