diff options
Diffstat (limited to 'continuedev/src/continuedev/server/main.py')
-rw-r--r-- | continuedev/src/continuedev/server/main.py | 64 |
1 files changed, 35 insertions, 29 deletions
diff --git a/continuedev/src/continuedev/server/main.py b/continuedev/src/continuedev/server/main.py index b92c9fa3..468bc855 100644 --- a/continuedev/src/continuedev/server/main.py +++ b/continuedev/src/continuedev/server/main.py @@ -15,6 +15,7 @@ from .ide import router as ide_router from .gui import router as gui_router from .session_manager import session_manager from ..libs.util.paths import getLogFilePath +from ..libs.util.logging import logger app = FastAPI() @@ -33,45 +34,49 @@ app.add_middleware( @app.get("/health") def health(): - print("Testing") + logger.debug("Health check") return {"status": "ok"} -# add cli arg for server port -parser = argparse.ArgumentParser() -parser.add_argument("-p", "--port", help="server port", - type=int, default=65432) -args = parser.parse_args() - -log_path = getLogFilePath() -LOG_CONFIG = { - 'version': 1, - 'disable_existing_loggers': False, - 'handlers': { - 'file': { - 'level': 'DEBUG', - 'class': 'logging.FileHandler', - 'filename': log_path, - }, - }, - 'root': { - 'level': 'DEBUG', - 'handlers': ['file'] - } -} -print(f"Log path: {log_path}") +class Logger(object): + def __init__(self, log_file: str): + self.terminal = sys.stdout + self.log = open(log_file, "a") + + def write(self, message): + self.terminal.write(message) + self.log.write(message) + + def flush(self): + # this flush method is needed for python 3 compatibility. + # this handles the flush command by doing nothing. + # you might want to specify some extra behavior here. + pass + + def isatty(self): + return False + + +try: + # add cli arg for server port + parser = argparse.ArgumentParser() + parser.add_argument("-p", "--port", help="server port", + type=int, default=65432) + args = parser.parse_args() +except Exception as e: + logger.debug(f"Error parsing command line arguments: {e}") + raise e def run_server(): - config = uvicorn.Config(app, host="0.0.0.0", - port=args.port, log_config=LOG_CONFIG) + config = uvicorn.Config(app, host="127.0.0.1", port=args.port) server = uvicorn.Server(config) server.run() async def cleanup_coroutine(): - print("Cleaning up sessions") + logger.debug("Cleaning up sessions") for session_id in session_manager.sessions: await session_manager.persist_session(session_id) @@ -90,13 +95,14 @@ def cpu_usage_report(): time.sleep(1) # Call cpu_percent again to get the CPU usage over the interval cpu_usage = process.cpu_percent(interval=None) - print(f"CPU usage: {cpu_usage}%") + logger.debug(f"CPU usage: {cpu_usage}%") atexit.register(cleanup) if __name__ == "__main__": try: + # Uncomment to get CPU usage reports # import threading # def cpu_usage_loop(): @@ -109,6 +115,6 @@ if __name__ == "__main__": run_server() except Exception as e: - print("Error starting Continue server: ", e) + logger.debug(f"Error starting Continue server: {e}") cleanup() raise e |