logging optimiert
This commit is contained in:
parent
4c0b6512f3
commit
b854dfa567
|
|
@ -1,16 +1,51 @@
|
|||
# bundle_checker.py
|
||||
import logging
|
||||
import os
|
||||
from datetime import datetime
|
||||
from bundle_parser import BundleParser
|
||||
from models import Base, Bundle, BundleVersion, BundleSalesHistory, BundleItem
|
||||
import requests
|
||||
|
||||
# Konfiguriere das Logging
|
||||
logging.basicConfig(level=logging.DEBUG, format="%(asctime)s [%(levelname)s] %(message)s")
|
||||
# === Logging-Konfiguration ===
|
||||
|
||||
# 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.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():
|
||||
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"
|
||||
|
||||
logger.info("Extrahiere Bundle-URLs von der Übersichtsseite ...")
|
||||
|
|
|
|||
Loading…
Reference in New Issue