-
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathutils.py
More file actions
23 lines (21 loc) · 809 Bytes
/
utils.py
File metadata and controls
23 lines (21 loc) · 809 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import logging
import sys
# Custom logging filter for correlation ID
class CorrelationFilter(logging.Filter):
def filter(self, record):
if not hasattr(record, 'correlation_id'):
record.correlation_id = '-'
return True
def setup_logging(name: str = __name__) -> logging.Logger:
logger = logging.getLogger(name)
# Only add handler if not already present to avoid duplicates
if not logger.handlers:
formatter = logging.Formatter(
'%(asctime)s - %(name)s - %(levelname)s - [%(correlation_id)s] %(message)s'
)
handler = logging.StreamHandler(sys.stdout)
handler.setFormatter(formatter)
handler.addFilter(CorrelationFilter())
logger.addHandler(handler)
logger.setLevel(logging.INFO)
return logger