diff --git a/obs/data/locale/en-US.ini b/obs/data/locale/en-US.ini
index 228bcc54b5521c0bd05fb34cabe59e040f19c5fd..ed4b842b74bf74526a2c16e54088458da96943aa 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 6ca35868665a5061850cfac52a580f9b7866bf59..16676849199dbdb3937b59f10bbde4d3e7b25d09 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 596dd2b36f1b1775b004467b654454fefb3ccd18..6526e4fa674fda61e4078e2995d36422e7e4afee 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 b74c4e44971948ffe07f44a0562e0e1a6d3f1ced..66969334c2224275211310662263ad629ca71740 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();