From efb5db0c69cff4f8267b8ab56897184131bebddd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=98=9F=E5=A4=96=E4=B9=8B=E7=A5=9E?= Date: Sun, 24 Jul 2022 12:46:59 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=AF=E7=94=A8=E9=AB=98=E7=BA=A7=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.py | 37 +++++++++++++++++++++++++------------ 1 file changed, 25 insertions(+), 12 deletions(-) diff --git a/main.py b/main.py index 0e6290a..48e6c3c 100755 --- a/main.py +++ b/main.py @@ -1,22 +1,35 @@ #!/usr/bin/env python import pygame as pg -import sys +import logging +import traceback import os +from logging.handlers import RotatingFileHandler from source import tool from source import constants as c from source.state import mainmenu, screen, level if __name__=='__main__': - # 控制状态机运行 + # 日志设置 if not os.path.exists(os.path.dirname(c.USERLOG_PATH)): - os.makedirs(os.path.dirname(c.USERLOG_PATH)) - sys.stderr = open(c.USERLOG_PATH, "w") - game = tool.Control() - state_dict = { c.MAIN_MENU: mainmenu.Menu(), - c.GAME_VICTORY: screen.GameVictoryScreen(), - c.GAME_LOSE: screen.GameLoseScreen(), - c.LEVEL: level.Level() - } - game.setup_states(state_dict, c.MAIN_MENU) - game.run() + os.makedirs(os.path.dirname(c.USERLOG_PATH)) + logger = logging.getLogger() + formatter = logging.Formatter('%(asctime)s: %(message)s') + file_handler = RotatingFileHandler(c.USERLOG_PATH, "a", 1024*1024, 0, "utf-8") + file_handler.setFormatter(formatter) + stream_handler = logging.StreamHandler() + stream_handler.setFormatter(formatter) + logger.addHandler(file_handler) + logger.addHandler(stream_handler) + try: + # 控制状态机运行 + game = tool.Control() + state_dict = { c.MAIN_MENU: mainmenu.Menu(), + c.GAME_VICTORY: screen.GameVictoryScreen(), + c.GAME_LOSE: screen.GameLoseScreen(), + c.LEVEL: level.Level() + } + game.setup_states(state_dict, c.MAIN_MENU) + game.run() + except: + logger.error(f'\n{traceback.format_exc()}')