Skip to content

Commit 59a7af5

Browse files
committed
do not log to stdio for daemon processes.
1 parent 0e94eff commit 59a7af5

3 files changed

Lines changed: 28 additions & 22 deletions

File tree

src/vectorcode/cli_utils.py

Lines changed: 25 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import json
44
import logging
55
import os
6+
import sys
67
from dataclasses import dataclass, field, fields
78
from datetime import datetime
89
from enum import Enum, StrEnum
@@ -488,7 +489,9 @@ async def expand_globs(
488489
return list(result)
489490

490491

491-
def config_logging(name: str = "vectorcode"): # pragma: nocover
492+
def config_logging(
493+
name: str = "vectorcode", stdio: bool = True, log_file: bool = False
494+
): # pragma: nocover
492495
"""Configure the logging module. This should be called before a `main` function (CLI, LSP or MCP)."""
493496

494497
logging.root.handlers = []
@@ -503,36 +506,37 @@ def config_logging(name: str = "vectorcode"): # pragma: nocover
503506
)
504507

505508
handlers = []
506-
if level is not None:
509+
if level is not None or log_file:
507510
log_dir = os.path.expanduser("~/.local/share/vectorcode/logs/")
508511
os.makedirs(log_dir, exist_ok=True)
509512
# File handler
510513
log_file_path = os.path.join(
511514
log_dir, f"{name}-{datetime.now().strftime('%Y-%m-%d_%H-%M-%S')}.log"
512515
)
513516
file_handler = logging.FileHandler(log_file_path)
514-
file_handler.setLevel(level)
517+
file_handler.setLevel(level or logging.WARN)
515518
handlers.append(file_handler)
516519

517-
import colorlog
518-
519-
# Console handler
520-
console_handler = colorlog.StreamHandler()
521-
console_handler.setFormatter(
522-
colorlog.ColoredFormatter(
523-
fmt="%(log_color)s%(levelname)s%(reset)s: %(name)s : %(message)s",
524-
log_colors={
525-
"DEBUG": "cyan",
526-
"INFO": "green",
527-
"WARNING": "yellow",
528-
"ERROR": "red",
529-
"CRITICAL": "bold_red",
530-
},
531-
reset=True,
520+
if stdio:
521+
import colorlog
522+
523+
# Console handler
524+
console_handler = colorlog.StreamHandler(sys.stderr)
525+
console_handler.setFormatter(
526+
colorlog.ColoredFormatter(
527+
fmt="%(log_color)s%(levelname)s%(reset)s: %(name)s : %(message)s",
528+
log_colors={
529+
"DEBUG": "cyan",
530+
"INFO": "green",
531+
"WARNING": "yellow",
532+
"ERROR": "red",
533+
"CRITICAL": "bold_red",
534+
},
535+
reset=True,
536+
)
532537
)
533-
)
534-
console_handler.setLevel(level or logging.WARN)
535-
handlers.append(console_handler)
538+
console_handler.setLevel(level or logging.WARN)
539+
handlers.append(console_handler)
536540

537541
logging.basicConfig(
538542
handlers=handlers,

src/vectorcode/lsp_main.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ async def lsp_start() -> int:
179179

180180

181181
def main(): # pragma: nocover
182-
config_logging("vectorcode-lsp-server")
182+
config_logging("vectorcode-lsp-server", stdio=False)
183183
asyncio.run(lsp_start())
184184

185185

src/vectorcode/mcp_main.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
from vectorcode.cli_utils import (
2222
Config,
23+
config_logging,
2324
find_project_config_dir,
2425
get_project_config,
2526
load_config_file,
@@ -145,6 +146,7 @@ async def run_server(): # pragma: nocover
145146

146147

147148
def main(): # pragma: nocover
149+
config_logging("vectorcode-mcp-server", stdio=False)
148150
return asyncio.run(run_server())
149151

150152

0 commit comments

Comments
 (0)