1
0
mirror of https://github.com/EDCD/EDMarketConnector.git synced 2025-04-16 01:00:42 +03:00

Fix console redirect to work with config.py now using logging.

1. We were now importing from config before the console redirect code
   runs.
2. That means that config.py's `logger = logging.getLogger(appname)`
   caused the logger to be set up whilst stdout/err were still pointing
   at the console.
3. So the redirect then had no effect on logging output.

This commit moves the import from config (and also killswitch, because
it also imports logging) to after the *moved* console redirect code.

NB: This needs the "detected a process already running" instance
checking.

NB: There's still a `True or ` for testing purposes EDMarketConnector.py:25

# Conflicts:
#	EDMarketConnector.py
This commit is contained in:
Athanasius 2021-03-22 14:20:20 +00:00
parent 762ceda73f
commit ce45a4d405

View File

@ -12,12 +12,28 @@ import webbrowser
from builtins import object, str
from os import chdir, environ
from os.path import dirname, isdir, join
import killswitch
from sys import platform
from time import localtime, strftime, time
from typing import TYPE_CHECKING, Any, Mapping, Optional, Tuple, cast
from constants import applongname, appname, protocolhandler_redirect
# config will now cause an appname logger to be set up, so we need the
# console redirect before this
appname = 'EDMarketConnector' # TODO: Must match config.appname, add test
if __name__ == '__main__':
# Keep this as the very first code run to be as sure as possible of no
# output until after this redirect is done, if needed.
if True or getattr(sys, 'frozen', False):
# By default py2exe tries to write log to dirname(sys.executable) which fails when installed
import tempfile
# unbuffered not allowed for text in python3, so use `1 for line buffering
sys.stdout = sys.stderr = open(join(tempfile.gettempdir(), f'{appname}.log'), mode='wt', buffering=1)
# TODO: Test: Make *sure* this redirect is working, else py2exe is going to cause an exit popup
# isort: off
import killswitch # noqa: E402 # Will cause a logging import/startup so needs to be after the redirect
from config import applongname, appname, appversion, appversion_nobuild, config, copyright # noqa: E402
# isort: on
if __name__ == "__main__":
def no_other_instance_running() -> bool: # noqa: CCR001
@ -130,15 +146,6 @@ if __name__ == "__main__":
# reach here.
sys.exit(0)
# Keep this as the very first code run to be as sure as possible of no
# output until after this redirect is done, if needed.
if getattr(sys, 'frozen', False):
# By default py2exe tries to write log to dirname(sys.executable) which fails when installed
import tempfile
# unbuffered not allowed for text in python3, so use `1 for line buffering
sys.stdout = sys.stderr = open(join(tempfile.gettempdir(), f'{appname}.log'), mode='a', buffering=1)
# TODO: Test: Make *sure* this redirect is working, else py2exe is going to cause an exit popup
# After the redirect in case config does logging setup
from config import appversion, appversion_nobuild, config, copyright