diff options
author | Nate Sesti <sestinj@gmail.com> | 2023-07-27 11:23:55 -0700 |
---|---|---|
committer | Nate Sesti <sestinj@gmail.com> | 2023-07-27 11:23:55 -0700 |
commit | 5d973490687c40922f2b7a2ddf2a3e19c207eb0f (patch) | |
tree | fab63009bd6014cd8ded1bd0a536727e0228b055 /continuedev | |
parent | 4e47da8398ac1cecb6f7100568f0f7296baaeac9 (diff) | |
download | sncontinue-5d973490687c40922f2b7a2ddf2a3e19c207eb0f.tar.gz sncontinue-5d973490687c40922f2b7a2ddf2a3e19c207eb0f.tar.bz2 sncontinue-5d973490687c40922f2b7a2ddf2a3e19c207eb0f.zip |
feat: :loud_sound: give users access to Continue server logs
can see logs in ~/.continue/continue.log
Diffstat (limited to 'continuedev')
-rw-r--r-- | continuedev/src/continuedev/libs/util/paths.py | 5 | ||||
-rw-r--r-- | continuedev/src/continuedev/plugins/context_providers/file.py | 35 | ||||
-rw-r--r-- | continuedev/src/continuedev/server/main.py | 29 |
3 files changed, 51 insertions, 18 deletions
diff --git a/continuedev/src/continuedev/libs/util/paths.py b/continuedev/src/continuedev/libs/util/paths.py index 14a97f57..b08b0949 100644 --- a/continuedev/src/continuedev/libs/util/paths.py +++ b/continuedev/src/continuedev/libs/util/paths.py @@ -44,3 +44,8 @@ def getConfigFilePath() -> str: f.write(getDefaultConfigFile()) return path + + +def getLogFilePath(): + path = os.path.join(getGlobalFolderPath(), "continue.log") + return path diff --git a/continuedev/src/continuedev/plugins/context_providers/file.py b/continuedev/src/continuedev/plugins/context_providers/file.py index 90835d98..31c8e1d9 100644 --- a/continuedev/src/continuedev/plugins/context_providers/file.py +++ b/continuedev/src/continuedev/plugins/context_providers/file.py @@ -13,14 +13,13 @@ def get_file_contents(filepath: str) -> str: try: filesize = os.path.getsize(filepath) if filesize > MAX_SIZE_IN_BYTES: - print("File is over 1MB size limit: ", filepath, filesize) - return "" + return None with open(filepath, "r") as f: return f.read() except Exception as e: - print("Error reading file contents", filepath, e) - return "" + # Some files cannot be read, e.g. binary files + return None DEFAULT_IGNORE_DIRS = [ @@ -68,15 +67,21 @@ class FileContextProvider(ContextProvider): if len(filepaths) > 1000: break - return [ContextItem( - content=get_file_contents(file)[:min( - 2000, len(get_file_contents(file)))], - description=ContextItemDescription( - name=os.path.basename(file), - description=file, - id=ContextItemId( - provider_title=self.title, - item_id=re.sub(r'[^0-9a-zA-Z_-]', '', file) + items = [] + for file in filepaths: + content = get_file_contents(file) + if content is None: + continue # no pun intended + + items.append(ContextItem( + content=content[:min(2000, len(content))], + description=ContextItemDescription( + name=os.path.basename(file), + description=file, + id=ContextItemId( + provider_title=self.title, + item_id=re.sub(r'[^0-9a-zA-Z_-]', '', file) + ) ) - ) - ) for file in filepaths] + )) + return items diff --git a/continuedev/src/continuedev/server/main.py b/continuedev/src/continuedev/server/main.py index 0b59d4fe..e155fad4 100644 --- a/continuedev/src/continuedev/server/main.py +++ b/continuedev/src/continuedev/server/main.py @@ -1,4 +1,5 @@ import asyncio +import sys import time import psutil import os @@ -7,10 +8,13 @@ from fastapi.middleware.cors import CORSMiddleware import atexit import uvicorn import argparse +import logging.config + 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 app = FastAPI() @@ -39,12 +43,31 @@ parser.add_argument("-p", "--port", help="server port", type=int, default=65432) args = parser.parse_args() +LOGGING_CONFIG = { + 'version': 1, + 'disable_existing_loggers': False, + 'handlers': { + 'file': { + 'level': 'DEBUG', + 'class': 'logging.FileHandler', + 'filename': 'uvicorn.log', + }, + }, + 'root': { + 'level': 'DEBUG', + 'handlers': ['file'] + } +} + +logging.config.dictConfig(LOGGING_CONFIG) +sys.stdout = open(getLogFilePath(), 'w') -# log_file = open('output.log', 'a') -# sys.stdout = log_file def run_server(): - uvicorn.run(app, host="0.0.0.0", port=args.port) + config = uvicorn.Config(app, host="0.0.0.0", port=args.port) + server = uvicorn.Server(config) + + server.run() async def cleanup_coroutine(): |