diff --git a/obs/data/locale/en-US.ini b/obs/data/locale/en-US.ini
index 228bcc54b..ed4b842b7 100644
--- a/obs/data/locale/en-US.ini
+++ b/obs/data/locale/en-US.ini
@@ -207,6 +207,7 @@ 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.Logs.ViewCurrentLog="&View Current Log"
Basic.MainMenu.Help.CheckForUpdates="Check For Updates"
# basic mode settings dialog
diff --git a/obs/forms/OBSBasic.ui b/obs/forms/OBSBasic.ui
index 6ca358686..166768491 100644
--- a/obs/forms/OBSBasic.ui
+++ b/obs/forms/OBSBasic.ui
@@ -581,6 +581,7 @@
+
@@ -806,6 +807,11 @@
Basic.MainMenu.Help.Logs.UploadCurrentLog
+
+
+ Basic.MainMenu.Help.Logs.ViewCurrentLog
+
+
false
diff --git a/obs/window-basic-main.cpp b/obs/window-basic-main.cpp
index 596dd2b36..6526e4fa6 100644
--- a/obs/window-basic-main.cpp
+++ b/obs/window-basic-main.cpp
@@ -2111,6 +2111,22 @@ void OBSBasic::on_actionUploadLastLog_triggered()
UploadLog(App()->GetLastLog());
}
+void OBSBasic::on_actionViewCurrentLog_triggered()
+{
+ char logDir[512];
+ if (os_get_config_path(logDir, sizeof(logDir), "obs-studio/logs") <= 0)
+ return;
+
+ const char* log = App()->GetCurrentLog();
+
+ string path = (char*)logDir;
+ path += "/";
+ path += log;
+
+ QUrl url = QUrl::fromLocalFile(QT_UTF8(path.c_str()));
+ QDesktopServices::openUrl(url);
+}
+
void OBSBasic::on_actionCheckForUpdates_triggered()
{
CheckForUpdates();
diff --git a/obs/window-basic-main.hpp b/obs/window-basic-main.hpp
index b74c4e449..66969334c 100644
--- a/obs/window-basic-main.hpp
+++ b/obs/window-basic-main.hpp
@@ -238,6 +238,7 @@ private slots:
void on_actionShowLogs_triggered();
void on_actionUploadCurrentLog_triggered();
void on_actionUploadLastLog_triggered();
+ void on_actionViewCurrentLog_triggered();
void on_actionCheckForUpdates_triggered();
void on_actionEditTransform_triggered();