Na czym to polega w sklepie
Funkcja logging.getLogger(name) zwraca logger modułu. W skryptach ETL e-commerce pozwala rozdzielić logi importu zamówień, walidacji feedu i wysyłki hitów GA4 - z poziomem INFO/WARNING/ERROR zamiast print().
Przykład ze sklepu internetowego
Nocny job ładuje CSV zamówień i loguje postęp oraz wiersze odrzucone:
import logging
logger = logging.getLogger("ecommerce.etl.orders")
def import_orders(path: str) -> int:
logger.info("Start import: %s", path)
# ...
logger.warning("Pominięto %d wierszy bez transaction_id", skipped)
logger.info("Zaimportowano %d zamówień", imported)
return imported
Co zrobić po stronie biznesu
- Osobny logger ecommerce.feed vs ecommerce.conversions.
- Rotacja logów RotatingFileHandler przy dziennych eksportach GA4.
- Alert Slack gdy
logger.errorprzy zerowym imporcie purchase.
W skrócie
getLogger(__name__) to standard w modułach ETL. Konfiguruj handler raz w entrypoincie - każdy moduł tylko loguje pod swoją nazwą.