Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions src/fastcs/control_system.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import asyncio
import os
import signal
from collections.abc import Coroutine, Sequence
from functools import partial
Expand Down Expand Up @@ -45,8 +46,9 @@ def __init__(
def run(self, interactive: bool = True):
serve = asyncio.ensure_future(self.serve(interactive=interactive))

self._loop.add_signal_handler(signal.SIGINT, serve.cancel)
self._loop.add_signal_handler(signal.SIGTERM, serve.cancel)
if os.name != "nt":
self._loop.add_signal_handler(signal.SIGINT, serve.cancel)
self._loop.add_signal_handler(signal.SIGTERM, serve.cancel)
self._loop.run_until_complete(serve)

async def _run_initial_coros(self):
Expand Down
11 changes: 10 additions & 1 deletion src/fastcs/logging/_logging.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import getpass
import os
import sys
from enum import StrEnum
from logging import LogRecord
from typing import TYPE_CHECKING, Any
Expand Down Expand Up @@ -30,8 +31,16 @@ def _configure_logger(
graylog_env_fields: GraylogEnvFields | None = None,
):
logger.remove()

try:
out = StdoutProxy(raw=True)
except Exception:
# e.g. prompt_toolkit.output.win32.NoConsoleScreenBufferError on windows
# But it isn't exported from prompt_toolkit in a cross-platform way.
out = sys.stdout

logger.add(
sink=StdoutProxy(raw=True), # type: ignore
sink=out, # type: ignore
colorize=True,
format=format_record,
level=level or "INFO",
Expand Down
Loading