esandorfi commited on
Commit
1e14389
·
unverified ·
1 Parent(s): c4757db

Add logging utility functions for JSON logging

Browse files
Files changed (1) hide show
  1. logging_utils.py +28 -0
logging_utils.py ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from __future__ import annotations
2
+
3
+ import json
4
+ import logging
5
+ import sys
6
+ from datetime import datetime, timezone
7
+ from typing import Any
8
+
9
+
10
+ def setup_logging() -> logging.Logger:
11
+ logger = logging.getLogger("photo_api")
12
+ if logger.handlers:
13
+ return logger
14
+
15
+ logger.setLevel(logging.INFO)
16
+ handler = logging.StreamHandler(sys.stdout)
17
+ handler.setFormatter(logging.Formatter("%(message)s"))
18
+ logger.addHandler(handler)
19
+ return logger
20
+
21
+
22
+ def log_json(logger: logging.Logger, *, event: str, **fields: Any) -> None:
23
+ payload: dict[str, Any] = {
24
+ "ts": datetime.now(timezone.utc).isoformat(),
25
+ "event": event,
26
+ **fields,
27
+ }
28
+ logger.info(json.dumps(payload, ensure_ascii=False, separators=(",", ":")))