Skip to content

Commit 3b7b973

Browse files
committed
Use --log-stream NONE and/or --sterr NONE to disable logging, stderr
Closes #73
1 parent 7084b66 commit 3b7b973

File tree

2 files changed

+63
-4
lines changed

2 files changed

+63
-4
lines changed

hdl_checker/server.py

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,8 @@ def parseArguments():
6666
"--log-stream",
6767
action="store",
6868
help="[HTTP, LSP] Log file, defaults to stdout when in HTTP or a "
69-
"temporary file named hdl_checker_log_pid<PID>.log when in LSP mode",
69+
"temporary file named hdl_checker_log_pid<PID>.log when in LSP mode. "
70+
"Use NONE to disable logging altogether",
7071
)
7172

7273
parser.add_argument(
@@ -79,7 +80,8 @@ def parseArguments():
7980
"--stderr",
8081
action="store",
8182
help="[HTTP] File to redirect stdout to. Defaults to a temporary file "
82-
"named hdl_checker_stderr_pid<PID>.log",
83+
"named hdl_checker_stderr_pid<PID>.log. "
84+
"Use NONE to disable redirecting stderr altogether",
8385
)
8486

8587
parser.add_argument(
@@ -111,8 +113,15 @@ def parseArguments():
111113
args.log_stream = args.log_stream or sys.stdout
112114

113115
# If not set, create a temporary file safely so there's no clashes
114-
args.log_stream = args.log_stream or getTemporaryFilename("log")
115-
args.stderr = args.stderr or getTemporaryFilename("stderr")
116+
if args.log_stream == "NONE":
117+
args.log_stream = None
118+
else:
119+
args.log_stream = args.log_stream or getTemporaryFilename("log")
120+
121+
if args.stderr == "NONE":
122+
args.stderr = None
123+
else:
124+
args.stderr = args.stderr or getTemporaryFilename("stderr")
116125

117126
args.log_level = args.log_level or logging.INFO
118127

hdl_checker/tests/test_server.py

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -467,6 +467,56 @@ def test():
467467
"stderr file should not be {}".format(args.stderr),
468468
)
469469

470+
@it.should("disable writing to log when passing --log-stream NONE") # type: ignore
471+
@disableVunit
472+
def test():
473+
from hdl_checker import server
474+
475+
# Check it works with LSP
476+
with patch.object(
477+
server.argparse._sys,
478+
"argv",
479+
[p.abspath(server.__file__), "--lsp", "--log-stream", "NONE"],
480+
):
481+
args = server.parseArguments()
482+
483+
it.assertIsNone(args.log_stream)
484+
485+
# Check it works with HTTP server
486+
with patch.object(
487+
server.argparse._sys,
488+
"argv",
489+
[p.abspath(server.__file__), "--log-stream", "NONE"],
490+
):
491+
args = server.parseArguments()
492+
493+
it.assertIsNone(args.log_stream)
494+
495+
@it.should("disable writing to stderr when passing --stderr NONE") # type: ignore
496+
@disableVunit
497+
def test():
498+
from hdl_checker import server
499+
500+
# Check it works with LSP
501+
with patch.object(
502+
server.argparse._sys,
503+
"argv",
504+
[p.abspath(server.__file__), "--lsp", "--stderr", "NONE"],
505+
):
506+
args = server.parseArguments()
507+
508+
it.assertIsNone(args.stderr)
509+
510+
# Check it works with HTTP server
511+
with patch.object(
512+
server.argparse._sys,
513+
"argv",
514+
[p.abspath(server.__file__), "--stderr", "NONE"],
515+
):
516+
args = server.parseArguments()
517+
518+
it.assertIsNone(args.stderr)
519+
470520

471521
@patch("hdl_checker.server.start_io_lang_server")
472522
@patch("hdl_checker.server._binaryStdio", return_value=("stdin", "stdout"))

0 commit comments

Comments
 (0)