31 lines
1 KiB
Python
31 lines
1 KiB
Python
import logging
|
|
from os import environ
|
|
|
|
from structlog.processors import JSONRenderer, TimeStamper
|
|
from structlog.dev import ConsoleRenderer
|
|
import structlog
|
|
|
|
if not structlog.is_configured():
|
|
if (env := environ.get('ENV_MODE')) and env == 'production':
|
|
timestamper = TimeStamper(fmt="%Y-%m-%d %H:%M:%S", utc=True)
|
|
renderer: JSONRenderer | ConsoleRenderer = JSONRenderer()
|
|
else:
|
|
timestamper = TimeStamper(fmt="%Y-%m-%d %H:%M:%S", utc=False)
|
|
renderer = ConsoleRenderer()
|
|
structlog.configure(
|
|
processors=[
|
|
structlog.contextvars.merge_contextvars,
|
|
structlog.processors.add_log_level,
|
|
structlog.processors.StackInfoRenderer(),
|
|
structlog.dev.set_exc_info,
|
|
timestamper,
|
|
renderer,
|
|
],
|
|
wrapper_class=structlog.make_filtering_bound_logger(logging.NOTSET),
|
|
context_class=dict,
|
|
logger_factory=structlog.PrintLoggerFactory(),
|
|
cache_logger_on_first_use=False
|
|
)
|
|
|
|
log = structlog.get_logger()
|