mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
46 lines
1.0 KiB
Python
46 lines
1.0 KiB
Python
import logging
|
|
import traceback
|
|
import sys
|
|
|
|
from io import StringIO
|
|
from tkinter import *
|
|
from tkinter.scrolledtext import *
|
|
|
|
_version_string = None
|
|
|
|
|
|
class ShowLogsException(Exception):
|
|
pass
|
|
|
|
|
|
def _error_prompt(oops=True):
|
|
tk = Tk()
|
|
if oops:
|
|
Label(tk, text="Oops, something went wrong.").grid(row=0)
|
|
Label(tk, text="Please send following text to the developer:").grid(row=1)
|
|
|
|
text = ScrolledText(tk)
|
|
text.insert("0.0", log_stream.getvalue())
|
|
text.grid(row=2, sticky=NSEW)
|
|
tk.focus()
|
|
|
|
|
|
def _handle_exception(self, exception: BaseException, *args):
|
|
logging.exception(exception)
|
|
_error_prompt(isinstance(exception, ShowLogsException))
|
|
|
|
|
|
def setup_version_string(str):
|
|
global _version_string
|
|
_version_string = str
|
|
|
|
|
|
if "--stdout" in sys.argv:
|
|
logging.basicConfig(stream=sys.stdout, level=logging.INFO)
|
|
else:
|
|
log_stream = StringIO()
|
|
logging.basicConfig(stream=log_stream, level=logging.INFO)
|
|
Tk.report_callback_exception = _handle_exception
|
|
|
|
logging.info("DCS Libration {}".format(_version_string))
|