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 +36 -2
- {sraverify-0.1.2.dist-info → sraverify-0.1.3.dist-info}/METADATA +1 -1
- {sraverify-0.1.2.dist-info → sraverify-0.1.3.dist-info}/RECORD +8 -8
- {sraverify-0.1.2.dist-info → sraverify-0.1.3.dist-info}/LICENSE +0 -0
- {sraverify-0.1.2.dist-info → sraverify-0.1.3.dist-info}/NOTICE +0 -0
- {sraverify-0.1.2.dist-info → sraverify-0.1.3.dist-info}/WHEEL +0 -0
- {sraverify-0.1.2.dist-info → sraverify-0.1.3.dist-info}/entry_points.txt +0 -0
- {sraverify-0.1.2.dist-info → sraverify-0.1.3.dist-info}/top_level.txt +0 -0
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
|
-
#
|
|
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)
|
|
@@ -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=
|
|
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.
|
|
269
|
-
sraverify-0.1.
|
|
270
|
-
sraverify-0.1.
|
|
271
|
-
sraverify-0.1.
|
|
272
|
-
sraverify-0.1.
|
|
273
|
-
sraverify-0.1.
|
|
274
|
-
sraverify-0.1.
|
|
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,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|