mirror of
https://github.com/EDCD/EDMarketConnector.git
synced 2025-06-09 03:42:16 +03:00
Logging: Move stdout/stderr redirect to before logging
can be run
If anything does `import logging` it's likely to grab a copy of sys.stderr before we redirect it meaning things aren't properly redirected when we start logging. So put the redirect as early as possible in EDMarketConnector.py. This will need a test implemented to be sure it's not accidentally broken by addition of an import before this.
This commit is contained in:
parent
82fc3cad65
commit
f25c743d14
@ -15,6 +15,16 @@ import webbrowser
|
|||||||
|
|
||||||
from config import appname, applongname, appversion, appversion_nobuild, copyright, config
|
from config import appname, applongname, appversion, appversion_nobuild, copyright, config
|
||||||
|
|
||||||
|
# TODO: Test: Make *sure* this redirect is working, else py2exe is going to cause an exit popup
|
||||||
|
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 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)
|
||||||
|
|
||||||
if getattr(sys, 'frozen', False):
|
if getattr(sys, 'frozen', False):
|
||||||
# Under py2exe sys.path[0] is the executable name
|
# Under py2exe sys.path[0] is the executable name
|
||||||
if platform == 'win32':
|
if platform == 'win32':
|
||||||
@ -1019,14 +1029,6 @@ def test_logging():
|
|||||||
|
|
||||||
# Run the app
|
# Run the app
|
||||||
if __name__ == "__main__":
|
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 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)
|
|
||||||
|
|
||||||
enforce_single_instance()
|
enforce_single_instance()
|
||||||
|
|
||||||
from EDMCLogging import logger
|
from EDMCLogging import logger
|
||||||
|
Loading…
x
Reference in New Issue
Block a user