|
4 | 4 | import grpc |
5 | 5 | import structlog |
6 | 6 | import sys |
| 7 | +import os |
| 8 | + |
7 | 9 | from cloudquery.discovery_v1 import discovery_pb2_grpc |
8 | 10 | from cloudquery.plugin_v3 import plugin_pb2_grpc |
9 | 11 |
|
|
15 | 17 | DOC_FORMATS = ["json", "markdown"] |
16 | 18 |
|
17 | 19 |
|
| 20 | +_IS_WINDOWS = sys.platform == "win32" |
| 21 | + |
| 22 | +try: |
| 23 | + import colorama |
| 24 | +except ImportError: |
| 25 | + colorama = None |
| 26 | + |
| 27 | +if _IS_WINDOWS: # pragma: no cover |
| 28 | + # On Windows, use colors by default only if Colorama is installed. |
| 29 | + _has_colors = colorama is not None |
| 30 | +else: |
| 31 | + # On other OSes, use colors by default. |
| 32 | + _has_colors = True |
| 33 | + |
| 34 | + |
18 | 35 | def get_logger(args): |
19 | | - log = structlog.get_logger(processors=[structlog.processors.JSONRenderer()]) |
| 36 | + processors = [ |
| 37 | + structlog.contextvars.merge_contextvars, |
| 38 | + structlog.processors.add_log_level, |
| 39 | + structlog.processors.StackInfoRenderer(), |
| 40 | + structlog.dev.set_exc_info, |
| 41 | + structlog.processors.TimeStamper(fmt="%Y-%m-%d %H:%M:%S", utc=False), |
| 42 | + ] |
| 43 | + if args.log_format == "text": |
| 44 | + processors.append( |
| 45 | + structlog.dev.ConsoleRenderer( |
| 46 | + colors=os.environ.get("NO_COLOR", "") == "" |
| 47 | + and ( |
| 48 | + os.environ.get("FORCE_COLOR", "") != "" |
| 49 | + or ( |
| 50 | + _has_colors |
| 51 | + and sys.stdout is not None |
| 52 | + and hasattr(sys.stdout, "isatty") |
| 53 | + and sys.stdout.isatty() |
| 54 | + ) |
| 55 | + ) |
| 56 | + ) |
| 57 | + ) |
| 58 | + else: |
| 59 | + processors.append(structlog.processors.JSONRenderer()) |
| 60 | + |
| 61 | + # if args.log_format == "json": |
| 62 | + # processors.append(structlog.processors.JSONRenderer()) |
| 63 | + log = structlog.get_logger(processors=processors) |
20 | 64 | return log |
21 | 65 |
|
22 | 66 |
|
@@ -87,6 +131,7 @@ def run(self, args): |
87 | 131 |
|
88 | 132 | def _serve(self, args): |
89 | 133 | logger = get_logger(args) |
| 134 | + self._plugin.set_logger(logger) |
90 | 135 | self._server = grpc.server(futures.ThreadPoolExecutor(max_workers=10)) |
91 | 136 | discovery_pb2_grpc.add_DiscoveryServicer_to_server( |
92 | 137 | DiscoveryServicer([3]), self._server |
|
0 commit comments