Skip to content

Commit 5d52af9

Browse files
authored
fix: Add more command-line args, use standard logging (#29)
* Fix docs signature * Command line args * Fmt * update
1 parent 106781b commit 5d52af9

File tree

1 file changed

+50
-10
lines changed

1 file changed

+50
-10
lines changed

cloudquery/sdk/serve/plugin.py

Lines changed: 50 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
import argparse
2+
import logging
3+
import os
24
from concurrent import futures
35

46
import grpc
57
import structlog
68
import sys
7-
import os
8-
99
from cloudquery.discovery_v1 import discovery_pb2_grpc
1010
from cloudquery.plugin_v3 import plugin_pb2_grpc
11+
from structlog import wrap_logger
1112

1213
from cloudquery.sdk.docs.generator import Generator
1314
from cloudquery.sdk.internal.servers.discovery_v1.discovery import DiscoveryServicer
@@ -16,7 +17,6 @@
1617

1718
DOC_FORMATS = ["json", "markdown"]
1819

19-
2020
_IS_WINDOWS = sys.platform == "win32"
2121

2222
try:
@@ -33,12 +33,27 @@
3333

3434

3535
def get_logger(args):
36+
log_level_map = {
37+
"debug": logging.DEBUG,
38+
"info": logging.INFO,
39+
"warning": logging.WARNING,
40+
"error": logging.ERROR,
41+
"critical": logging.CRITICAL,
42+
}
43+
44+
logging.basicConfig(
45+
format="%(message)s",
46+
stream=sys.stdout,
47+
level=log_level_map.get(args.log_level.lower(), logging.INFO),
48+
)
49+
3650
processors = [
3751
structlog.contextvars.merge_contextvars,
3852
structlog.processors.add_log_level,
3953
structlog.processors.StackInfoRenderer(),
4054
structlog.dev.set_exc_info,
41-
structlog.processors.TimeStamper(fmt="%Y-%m-%d %H:%M:%S", utc=False),
55+
structlog.stdlib.filter_by_level,
56+
structlog.processors.TimeStamper(fmt="%Y-%m-%dT%H:%M:%SZ", utc=True),
4257
]
4358
if args.log_format == "text":
4459
processors.append(
@@ -58,9 +73,7 @@ def get_logger(args):
5873
else:
5974
processors.append(structlog.processors.JSONRenderer())
6075

61-
# if args.log_format == "json":
62-
# processors.append(structlog.processors.JSONRenderer())
63-
log = structlog.get_logger(processors=processors)
76+
log = wrap_logger(logging.getLogger(), processors=processors)
6477
return log
6578

6679

@@ -73,16 +86,42 @@ def run(self, args):
7386
subparsers = parser.add_subparsers(dest="command", required=True)
7487

7588
serve_parser = subparsers.add_parser("serve", help="Start plugin server")
89+
serve_parser.add_argument(
90+
"--log-format",
91+
type=str,
92+
default="text",
93+
choices=["text", "json"],
94+
help="logging format",
95+
)
7696
serve_parser.add_argument(
7797
"--log-level",
7898
type=str,
7999
default="info",
80100
choices=["trace", "debug", "info", "warn", "error"],
81101
help="log level",
82102
)
103+
104+
# ignored for now
83105
serve_parser.add_argument(
84-
"--log-format", type=str, default="text", choices=["text", "json"]
106+
"--no-sentry",
107+
action="store_true",
108+
help="disable sentry (placeholder for future use)",
85109
)
110+
# ignored for now
111+
serve_parser.add_argument(
112+
"--otel-endpoint",
113+
type=str,
114+
default="",
115+
help="Open Telemetry HTTP collector endpoint (placeholder for future use)",
116+
)
117+
# ignored for now
118+
serve_parser.add_argument(
119+
"--otel-endpoint-insecure",
120+
type=str,
121+
default="",
122+
help="Open Telemetry HTTP collector endpoint (for development only) (placeholder for future use)",
123+
)
124+
86125
serve_parser.add_argument(
87126
"--address",
88127
type=str,
@@ -140,15 +179,16 @@ def _serve(self, args):
140179
PluginServicer(self._plugin, logger), self._server
141180
)
142181
self._server.add_insecure_port(args.address)
143-
print("Starting server. Listening on " + args.address)
182+
logger.info("Starting server", address=args.address)
144183
self._server.start()
145184
self._server.wait_for_termination()
146185

147186
def stop(self):
148187
self._server.stop(5)
149188

150189
def _generate_docs(self, args):
151-
print("Generating docs in format: " + args.format)
190+
logger = get_logger(args)
191+
logger.info("Generating docs", format=args.format)
152192
generator = Generator(
153193
self._plugin.name(),
154194
self._plugin.get_tables(

0 commit comments

Comments
 (0)