mirror of
https://github.com/boostorg/website-v2.git
synced 2026-01-19 16:52:16 +00:00
Improved logging formatting (#1905)
This commit is contained in:
@@ -1,8 +1,11 @@
|
||||
import os
|
||||
import datetime
|
||||
from logging.config import dictConfig
|
||||
|
||||
from celery import Celery
|
||||
from celery.schedules import crontab
|
||||
from celery.signals import setup_logging
|
||||
from pythonjsonlogger import jsonlogger
|
||||
|
||||
# set the default Django settings module for the 'celery' program.
|
||||
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings")
|
||||
@@ -19,6 +22,40 @@ app.config_from_object("django.conf:settings", namespace="CELERY")
|
||||
app.autodiscover_tasks()
|
||||
|
||||
|
||||
@setup_logging.connect
|
||||
def config_loggers(*args, **kwags):
|
||||
"""Configure Celery logging with JSON default, readable for local development."""
|
||||
from django.conf import settings
|
||||
|
||||
# production
|
||||
json_formatter = {
|
||||
"()": jsonlogger.JsonFormatter,
|
||||
"format": "%(name)s %(levelname)s %(filename)s:%(lineno)d %(message)s",
|
||||
}
|
||||
# local development
|
||||
text_formatter = {
|
||||
"format": "%(asctime)s [%(levelname)s] %(filename)s:%(lineno)d - %(message)s",
|
||||
"datefmt": "%Y-%m-%d %H:%M:%S",
|
||||
}
|
||||
dictConfig(
|
||||
{
|
||||
"version": 1,
|
||||
"disable_existing_loggers": False,
|
||||
"formatters": {"json": json_formatter, "text": text_formatter},
|
||||
"handlers": {
|
||||
"console": {
|
||||
"class": "logging.StreamHandler",
|
||||
"formatter": "text" if settings.LOCAL_DEVELOPMENT else "json",
|
||||
},
|
||||
},
|
||||
"root": {
|
||||
"level": "INFO",
|
||||
"handlers": ["console"],
|
||||
},
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
@app.task(bind=True)
|
||||
def debug_task(self):
|
||||
print(f"Request: {self.request!r}")
|
||||
|
||||
@@ -251,7 +251,19 @@ root.setLevel(logging.INFO)
|
||||
|
||||
|
||||
handler = logging.StreamHandler(sys.stdout)
|
||||
handler.setFormatter(jsonlogger.JsonFormatter())
|
||||
handler.setFormatter(
|
||||
jsonlogger.JsonFormatter(
|
||||
"%(name)s %(levelname)s %(filename)s:%(lineno)d %(message)s"
|
||||
)
|
||||
)
|
||||
|
||||
if LOCAL_DEVELOPMENT:
|
||||
handler.setFormatter(
|
||||
logging.Formatter(
|
||||
"%(asctime)s [%(levelname)s] %(filename)s:%(lineno)d - %(message)s",
|
||||
datefmt="%Y-%m-%d %H:%M:%S",
|
||||
)
|
||||
)
|
||||
|
||||
root.addHandler(handler)
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@ import djclick as click
|
||||
import requests
|
||||
|
||||
from django.conf import settings
|
||||
import structlog
|
||||
|
||||
from versions.models import Version
|
||||
from versions.releases import (
|
||||
@@ -17,6 +18,8 @@ from structlog import get_logger
|
||||
|
||||
logger = get_logger(__name__)
|
||||
|
||||
logger = structlog.get_logger()
|
||||
|
||||
|
||||
@click.command()
|
||||
@click.option("--release", is_flag=False, help="Release name")
|
||||
@@ -71,7 +74,7 @@ def command(release: str, new: bool):
|
||||
data = get_archives_download_data(url)
|
||||
download_data.append(data)
|
||||
except (requests.exceptions.HTTPError, ValueError):
|
||||
print(f"Skipping {url}; error retrieving download data")
|
||||
logger.warning(f"Skipping {url}; error retrieving download data")
|
||||
continue
|
||||
logger.info(f"Data for {v.name=} at {url=}: {download_data=}")
|
||||
store_release_downloads_for_version(v, download_data)
|
||||
|
||||
Reference in New Issue
Block a user