logging optimiert
This commit is contained in:
parent
4c0b6512f3
commit
b854dfa567
|
|
@ -1,16 +1,51 @@
|
||||||
# bundle_checker.py
|
# bundle_checker.py
|
||||||
import logging
|
import logging
|
||||||
|
import os
|
||||||
|
from datetime import datetime
|
||||||
from bundle_parser import BundleParser
|
from bundle_parser import BundleParser
|
||||||
from models import Base, Bundle, BundleVersion, BundleSalesHistory, BundleItem
|
from models import Base, Bundle, BundleVersion, BundleSalesHistory, BundleItem
|
||||||
import requests
|
|
||||||
|
|
||||||
# Konfiguriere das Logging
|
# === Logging-Konfiguration ===
|
||||||
logging.basicConfig(level=logging.DEBUG, format="%(asctime)s [%(levelname)s] %(message)s")
|
|
||||||
|
# Eigener Formatter, der lange Nachrichten für den Konsolen-Output kürzt
|
||||||
|
class TruncateFormatter(logging.Formatter):
|
||||||
|
def __init__(self, fmt=None, datefmt=None, max_length=300):
|
||||||
|
super().__init__(fmt, datefmt)
|
||||||
|
self.max_length = max_length
|
||||||
|
|
||||||
|
def format(self, record):
|
||||||
|
message = super().format(record)
|
||||||
|
if len(message) > self.max_length:
|
||||||
|
return message[:self.max_length] + " ... [truncated]"
|
||||||
|
return message
|
||||||
|
|
||||||
|
# Erstelle einen Logger
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
logger.setLevel(logging.DEBUG)
|
||||||
|
|
||||||
|
# Datei-Handler: Schreibt alle Logeinträge in eine Datei mit Zeitstempel im Dateinamen
|
||||||
|
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
|
||||||
|
log_filename = f"bundle_checker_{timestamp}.log"
|
||||||
|
file_handler = logging.FileHandler(log_filename)
|
||||||
|
file_handler.setLevel(logging.DEBUG)
|
||||||
|
file_formatter = logging.Formatter("%(asctime)s [%(levelname)s] %(message)s", "%Y-%m-%d %H:%M:%S")
|
||||||
|
file_handler.setFormatter(file_formatter)
|
||||||
|
|
||||||
|
# Konsolen-Handler: Gibt verkürzte Nachrichten aus
|
||||||
|
console_handler = logging.StreamHandler()
|
||||||
|
console_handler.setLevel(logging.DEBUG)
|
||||||
|
console_formatter = TruncateFormatter("%(asctime)s [%(levelname)s] %(message)s", "%Y-%m-%d %H:%M:%S", max_length=300)
|
||||||
|
console_handler.setFormatter(console_formatter)
|
||||||
|
|
||||||
|
# Füge beide Handler zum Logger hinzu
|
||||||
|
logger.addHandler(file_handler)
|
||||||
|
logger.addHandler(console_handler)
|
||||||
|
|
||||||
|
# === Ende Logging-Konfiguration ===
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
overview_url = "https://www.humblebundle.com/bundles"
|
overview_url = "https://www.humblebundle.com/bundles"
|
||||||
# Hier kannst du zwischen "books", "games" und "software" wählen:
|
# Wähle hier die gewünschte Kategorie, z. B. "books", "games" oder "software"
|
||||||
category = "books"
|
category = "books"
|
||||||
|
|
||||||
logger.info("Extrahiere Bundle-URLs von der Übersichtsseite ...")
|
logger.info("Extrahiere Bundle-URLs von der Übersichtsseite ...")
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue