forked from dullage/flatnotes
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlogger.py
More file actions
31 lines (25 loc) · 835 Bytes
/
logger.py
File metadata and controls
31 lines (25 loc) · 835 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import logging
import os
formatter = logging.Formatter(
"%(asctime)s [%(levelname)s]: %(message)s", "%Y-%m-%d %H:%M:%S"
)
log_level = os.environ.get("LOGLEVEL", "INFO").upper()
# Internal
logger = logging.getLogger()
handler = logging.StreamHandler()
handler.setFormatter(formatter)
logger.addHandler(handler)
logger.setLevel(log_level)
# Uvicorn
class HealthEndpointFilter(logging.Filter):
def filter(self, record: logging.LogRecord) -> bool:
return (
record.args
and len(record.args) >= 3
and record.args[2] != "/health"
)
uvicorn_logger = logging.getLogger("uvicorn.access")
uvicorn_logger.addFilter(HealthEndpointFilter())
for handler in uvicorn_logger.handlers:
handler.setFormatter(formatter)
uvicorn_logger.setLevel(log_level)