diff --git a/gajim/application.py b/gajim/application.py
index ab7ea1d991126e920d9bd754b994526d0309bcf2..eb7dc50c5e05c683d0ac38afcdeb39c024ea8de8 100644
--- a/gajim/application.py
+++ b/gajim/application.py
@@ -34,9 +34,7 @@
 # along with Gajim. If not, see <http://www.gnu.org/licenses/>.
 
 import os
-import time
 import sys
-from datetime import datetime
 from urllib.parse import unquote
 
 from nbxmpp.namespaces import Namespace
@@ -358,14 +356,7 @@ def _handle_local_options(self,
         if options.contains('gdebug'):
             os.environ['G_MESSAGES_DEBUG'] = 'all'
 
-        if app.get_debug_mode():
-            # Redirect has to happen before logging init
-            self._cleanup_debug_logs()
-            self._redirect_output()
-            logging_helpers.init()
-            logging_helpers.set_verbose()
-        else:
-            logging_helpers.init()
+        logging_helpers.init()
 
         if options.contains('quiet'):
             logging_helpers.set_quiet()
@@ -393,24 +384,6 @@ def warn_with_traceback(message, category, filename, lineno,
         warnings.showwarning = warn_with_traceback
         warnings.filterwarnings(action="always")
 
-    @staticmethod
-    def _redirect_output():
-        debug_folder = configpaths.get('DEBUG')
-        date = datetime.today().strftime('%d%m%Y-%H%M%S')
-        filename = '%s-debug.log' % date
-        fd = open(debug_folder / filename, 'a')
-        sys.stderr = sys.stdout = fd
-
-    @staticmethod
-    def _cleanup_debug_logs():
-        debug_folder = configpaths.get('DEBUG')
-        debug_files = list(debug_folder.glob('*-debug.log*'))
-        now = time.time()
-        for file in debug_files:
-            # Delete everything older than 3 days
-            if file.stat().st_ctime < now - 259200:
-                file.unlink()
-
     def add_actions(self):
         ''' Build Application Actions '''
         from gajim import app_actions
diff --git a/gajim/common/logging_helpers.py b/gajim/common/logging_helpers.py
index 13a73c15789171da9fff691429467fef0f3437f9..8afcd24e7ce73c82a3bc0f51e3ec1ed51446afdc 100644
--- a/gajim/common/logging_helpers.py
+++ b/gajim/common/logging_helpers.py
@@ -17,7 +17,11 @@
 import logging
 import os
 import sys
+import time
+from datetime import datetime
 
+from gajim.common import app
+from gajim.common import configpaths
 from gajim.common.i18n import _
 
 def parseLogLevel(arg):
@@ -136,6 +140,11 @@ def init():
     """
     Iinitialize the logging system
     """
+
+    if app.get_debug_mode():
+        _cleanup_debug_logs()
+        _redirect_output()
+
     use_color = False
     if os.name != 'nt':
         use_color = sys.stderr.isatty()
@@ -164,6 +173,12 @@ def init():
     root_log.addHandler(consoleloghandler)
     root_log.propagate = False
 
+    # GAJIM_DEBUG is set only on Windows when using Gajim-Debug.exe
+    # Gajim-Debug.exe shows a command line prompt and we want to redirect
+    # log output to it
+    if app.get_debug_mode() or os.environ.get('GAJIM_DEBUG', False):
+        set_verbose()
+
 def set_loglevels(loglevels_string):
     parseAndSetLogLevels(loglevels_string)
 
@@ -176,6 +191,25 @@ def set_quiet():
     parseAndSetLogLevels('.nbxmpp=CRITICAL')
 
 
+def _redirect_output():
+    debug_folder = configpaths.get('DEBUG')
+    date = datetime.today().strftime('%d%m%Y-%H%M%S')
+    filename = '%s-debug.log' % date
+    fd = open(debug_folder / filename, 'a')
+    sys.stderr = sys.stdout = fd
+
+
+def _cleanup_debug_logs():
+    debug_folder = configpaths.get('DEBUG')
+    debug_files = list(debug_folder.glob('*-debug.log*'))
+    now = time.time()
+    for file in debug_files:
+        # Delete everything older than 3 days
+        if file.stat().st_ctime < now - 259200:
+            file.unlink()
+
+
+
 # tests
 if __name__ == '__main__':
     init()