sraverify 0.1.2__py3-none-any.whl → 0.1.3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
sraverify/core/logging.py CHANGED
@@ -4,7 +4,19 @@ Logging configuration for SRA Verify.
4
4
  import logging
5
5
  import sys
6
6
 
7
- # Create a logger
7
+ # CRITICAL: Configure root logger FIRST to use stderr
8
+ # This prevents any logger from defaulting to stdout
9
+ root_logger = logging.getLogger()
10
+ # Remove any existing handlers from root logger
11
+ for handler in root_logger.handlers[:]:
12
+ root_logger.removeHandler(handler)
13
+ # Add stderr handler to root logger
14
+ root_stderr_handler = logging.StreamHandler(sys.stderr)
15
+ root_stderr_handler.setFormatter(logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s"))
16
+ root_logger.addHandler(root_stderr_handler)
17
+ root_logger.setLevel(logging.WARNING) # Set root to WARNING to reduce noise
18
+
19
+ # Create sraverify logger
8
20
  logger = logging.getLogger("sraverify")
9
21
 
10
22
  # Create handlers
@@ -23,15 +35,37 @@ logger.addHandler(console_handler)
23
35
  # Set default level
24
36
  logger.setLevel(logging.INFO)
25
37
 
38
+ # Prevent sraverify logger from propagating to root (we handle it ourselves)
39
+ logger.propagate = False
40
+
41
+ # Configure boto3/botocore loggers to use stderr as well
42
+ # This prevents them from polluting stdout in MCP server context
43
+ boto_logger = logging.getLogger("boto3")
44
+ botocore_logger = logging.getLogger("botocore")
45
+ urllib3_logger = logging.getLogger("urllib3")
46
+
47
+ # Set boto loggers to WARNING to reduce noise (they're very verbose)
48
+ boto_logger.setLevel(logging.WARNING)
49
+ botocore_logger.setLevel(logging.WARNING)
50
+ urllib3_logger.setLevel(logging.WARNING)
51
+
52
+ # Let boto loggers propagate to root (which now uses stderr)
53
+ boto_logger.propagate = True
54
+ botocore_logger.propagate = True
55
+ urllib3_logger.propagate = True
56
+
26
57
  def configure_logging(debug=False):
27
58
  """
28
59
  Configure logging level based on debug flag.
29
-
60
+
30
61
  Args:
31
62
  debug: If True, set logging level to DEBUG, otherwise INFO
32
63
  """
33
64
  if debug:
34
65
  logger.setLevel(logging.DEBUG)
35
66
  logger.debug("Debug logging enabled")
67
+ # Also enable debug for boto in debug mode if needed
68
+ # boto_logger.setLevel(logging.DEBUG)
69
+ # botocore_logger.setLevel(logging.DEBUG)
36
70
  else:
37
71
  logger.setLevel(logging.INFO)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sraverify
3
- Version: 0.1.2
3
+ Version: 0.1.3
4
4
  Summary: AWS Security Reference Architecture Verification Tool
5
5
  Home-page: https://github.com/awslabs/sra-verify
6
6
  Author: SRA Verify team
@@ -24,7 +24,7 @@ sraverify/checks/config/SRA-CONFIG-1.py,sha256=DT2Nce99vFHBuFjVDyLYQc2VCcBmziXlj
24
24
  sraverify/checks/config/__init__.py,sha256=ZcR-cj0dQNGFi_TKwOREXGr3Onju9VtFsds8rtbBg6s,55
25
25
  sraverify/core/__init__.py,sha256=zoDY1Q-oGF9IVGD5f07yJ4d1KuWKQq3IqEDmetOFdok,54
26
26
  sraverify/core/check.py,sha256=MDjjHV3mFYprEeHCEadzme3A0UHUpLEbLJ4wGpi0rSU,8559
27
- sraverify/core/logging.py,sha256=25k76RLkxDaGQW9I__88r45bqWMP7A0vEJaP87hv_Hs,870
27
+ sraverify/core/logging.py,sha256=xG7ySsfu45IEApS1nLMn118iXdt-pOJyM-d7y4AofWA,2329
28
28
  sraverify/core/session.py,sha256=vbLyGEhFJ8thU9BHgN80MexZLoJMKlZDFIcGwKECblo,1507
29
29
  sraverify/lib/__init__.py,sha256=ENiW27PYy5d_2BeoIxdxckFmW9KcrVX1dp97smmVx0c,55
30
30
  sraverify/lib/audit_info.py,sha256=c6O4I9mJFjxzHFLROQ_1PcR0lQmT_tA0JQMtCNUlS2s,1553
@@ -265,10 +265,10 @@ sraverify/utils/__init__.py,sha256=IjhsKkC2WOXrINnNksrNX69R5XwTCTO6gVlLkv_guxQ,5
265
265
  sraverify/utils/banner.py,sha256=zMLBKuw7G8mielJeMXXPaAMnwKy6CpapX-1GVfKyux8,2756
266
266
  sraverify/utils/outputs.py,sha256=HlEuy21RgrcTuRjWkFDfrY6GfO1DNVzGMBLOxvemjek,1721
267
267
  sraverify/utils/progress.py,sha256=B_Dhaep3inav3SC1ZpKPcH74tgJqf6wmY2ILzAGbOeU,3190
268
- sraverify-0.1.2.dist-info/LICENSE,sha256=CeipvOyAZxBGUsFoaFqwkx54aPnIKEtm9a5u2uXxEws,10142
269
- sraverify-0.1.2.dist-info/METADATA,sha256=arIlCtuSkVPoi-MDbjx5kg3lBalq5zVh0ghAn0ZMxkI,17007
270
- sraverify-0.1.2.dist-info/NOTICE,sha256=1CkO1kwu3Q_OHYTj-d-yiBJA_lNN73a4zSntavaD4oc,67
271
- sraverify-0.1.2.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
272
- sraverify-0.1.2.dist-info/entry_points.txt,sha256=lewX6FKnqbko4m2xq4N_UiJbzSrghnjoZyD1YdBmoO8,50
273
- sraverify-0.1.2.dist-info/top_level.txt,sha256=dqkttmF4ZzAyRMF2tDxRuIvDZGjyVIoV9eDqK5sMzYM,10
274
- sraverify-0.1.2.dist-info/RECORD,,
268
+ sraverify-0.1.3.dist-info/LICENSE,sha256=CeipvOyAZxBGUsFoaFqwkx54aPnIKEtm9a5u2uXxEws,10142
269
+ sraverify-0.1.3.dist-info/METADATA,sha256=kS1he0LIztFx0s2qXGVkfbC2L9FleVFFzD-BW3ka6gk,17007
270
+ sraverify-0.1.3.dist-info/NOTICE,sha256=1CkO1kwu3Q_OHYTj-d-yiBJA_lNN73a4zSntavaD4oc,67
271
+ sraverify-0.1.3.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
272
+ sraverify-0.1.3.dist-info/entry_points.txt,sha256=lewX6FKnqbko4m2xq4N_UiJbzSrghnjoZyD1YdBmoO8,50
273
+ sraverify-0.1.3.dist-info/top_level.txt,sha256=dqkttmF4ZzAyRMF2tDxRuIvDZGjyVIoV9eDqK5sMzYM,10
274
+ sraverify-0.1.3.dist-info/RECORD,,