diff --git a/src/citra/citra.cpp b/src/citra/citra.cpp
index 6ac5c5dc5..41b62ac16 100644
--- a/src/citra/citra.cpp
+++ b/src/citra/citra.cpp
@@ -5,6 +5,7 @@
 #include "common/common.h"
 #include "common/log_manager.h"
 
+#include "core/settings.h"
 #include "core/system.h"
 #include "core/core.h"
 #include "core/loader/loader.h"
@@ -22,6 +23,9 @@ int __cdecl main(int argc, char **argv) {
     }
 
     Config config;
+    
+    if (!Settings::values.enable_log)
+        LogManager::Shutdown();
 
     std::string boot_filename = argv[1];
     EmuWindow_GLFW* emu_window = new EmuWindow_GLFW;
diff --git a/src/citra/config.cpp b/src/citra/config.cpp
index c5ce8a164..f45d09fc2 100644
--- a/src/citra/config.cpp
+++ b/src/citra/config.cpp
@@ -65,11 +65,16 @@ void Config::ReadData() {
     Settings::values.use_virtual_sd = glfw_config->GetBoolean("Data Storage", "use_virtual_sd", true);
 }
 
+void Config::ReadMiscellaneous() {
+    Settings::values.enable_log = glfw_config->GetBoolean("Miscellaneous", "enable_log", true);
+}
+
 void Config::Reload() {
     LoadINI(glfw_config, glfw_config_loc.c_str(), DefaultINI::glfw_config_file);
     ReadControls();
     ReadCore();
     ReadData();
+    ReadMiscellaneous();
 }
 
 Config::~Config() {
diff --git a/src/citra/config.h b/src/citra/config.h
index 4f6551876..19bb83700 100644
--- a/src/citra/config.h
+++ b/src/citra/config.h
@@ -18,6 +18,7 @@ class Config {
     void ReadControls();
     void ReadCore();
     void ReadData();
+    void ReadMiscellaneous();
 public:
     Config();
     ~Config();
diff --git a/src/citra/default_ini.h b/src/citra/default_ini.h
index 557da881b..f1f626eed 100644
--- a/src/citra/default_ini.h
+++ b/src/citra/default_ini.h
@@ -32,6 +32,9 @@ gpu_refresh_rate = ## 60 (default)
 
 [Data Storage]
 use_virtual_sd =
+
+[Miscellaneous]
+enable_log =
 )";
 
 }
diff --git a/src/citra_qt/config.cpp b/src/citra_qt/config.cpp
index 63d396439..09fce4d6f 100644
--- a/src/citra_qt/config.cpp
+++ b/src/citra_qt/config.cpp
@@ -91,16 +91,30 @@ void Config::SaveData() {
     qt_config->endGroup();
 }
 
+void Config::ReadMiscellaneous() {
+    qt_config->beginGroup("Miscellaneous");
+    Settings::values.enable_log = qt_config->value("enable_log", true).toBool();
+    qt_config->endGroup();
+}
+
+void Config::SaveMiscellaneous() {
+    qt_config->beginGroup("Miscellaneous");
+    qt_config->setValue("enable_log", Settings::values.enable_log);
+    qt_config->endGroup();
+}
+
 void Config::Reload() {
     ReadControls();
     ReadCore();
     ReadData();
+    ReadMiscellaneous();
 }
 
 void Config::Save() {
     SaveControls();
     SaveCore();
     SaveData();
+    SaveMiscellaneous();
 }
 
 Config::~Config() {
diff --git a/src/citra_qt/config.h b/src/citra_qt/config.h
index 782c26287..8c6568cb2 100644
--- a/src/citra_qt/config.h
+++ b/src/citra_qt/config.h
@@ -18,6 +18,9 @@ class Config {
     void SaveCore();
     void ReadData();
     void SaveData();
+
+    void ReadMiscellaneous();
+    void SaveMiscellaneous();
 public:
     Config();
     ~Config();
diff --git a/src/citra_qt/main.cpp b/src/citra_qt/main.cpp
index 304c169b9..9a4e36adf 100644
--- a/src/citra_qt/main.cpp
+++ b/src/citra_qt/main.cpp
@@ -22,6 +22,7 @@
 #include "debugger/graphics.hxx"
 #include "debugger/graphics_cmdlists.hxx"
 
+#include "core/settings.h"
 #include "core/system.h"
 #include "core/core.h"
 #include "core/loader/loader.h"
@@ -34,8 +35,12 @@
 GMainWindow::GMainWindow()
 {
     LogManager::Init();
+
     Config config;
 
+    if (!Settings::values.enable_log)
+        LogManager::Shutdown();
+
     ui.setupUi(this);
     statusBar()->hide();
 
diff --git a/src/core/settings.h b/src/core/settings.h
index 6a6265e18..7e7a66b89 100644
--- a/src/core/settings.h
+++ b/src/core/settings.h
@@ -32,6 +32,8 @@ struct Values {
 
     // Data Storage
     bool use_virtual_sd;
+
+    bool enable_log;
 } extern values;
 
 }