```python
import logging
def init_logging_config():
logging.basicConfig(
level=logging.DEBUG,
format="%(asctime)s - %(name)s - %(levelname)s - %(message)s",
)
```
Ref: https://docs.python.org/3/library/logging.html#logrecord-attributes
```python
import logging
import os
def configure_logging():
level = os.getenv("LOG_LEVEL", "INFO")
json_enabled = os.getenv("LOG_JSON", "0") == "1"
if json_enabled:
# Requires `python-json-logger` installed
fmt = "%(asctime)s [%(levelname)s] %(name)s %(message)s"
formatter = {
"class": "pythonjsonlogger.jsonlogger.JsonFormatter",
"format": fmt,
}
else:
formatter = {
"format": "%(asctime)s [%(levelname)s] %(name)s "
"%(message)s",
}
config = {
"version": 1,
"disable_existing_loggers": False,
"formatters": {
"standard": formatter,
},
"handlers": {
"console": {
"class": "logging.StreamHandler",
"level": level,
"formatter": "standard",
"stream": "ext://sys.stdout",
},
"file": {
"class": "logging.handlers.RotatingFileHandler",
"level": level,
"formatter": "standard",
"filename": os.getenv("LOG_FILE", "app.log"),
"maxBytes": 5 * 1024 * 1024,
"backupCount": 5,
"encoding": "utf-8",
},
},
"root": {
"level": level,
"handlers": ["console", "file"],
},
}
logging.config.dictConfig(config)
```