Logging minimiert
This commit is contained in:
@@ -124,9 +124,9 @@ Finde mal eine Datumsrechner- Webapp, die nicht völlig Werbe- und Tracking vers
|
||||
|
||||
Dieses Projekt wurde zu nahezu 100% mit Unterstützung künsticher Intelligenz (*[Vibe Coding](https://de.wikipedia.org/wiki/Vibe_Coding)*) erstellt. Das Grundgerüst war nach ca. 45 Minuten fertig gestellt, insgesamt hat die Entwicklung des Projekts ca. 4 Stunden Zeit beansprucht.
|
||||
|
||||
### Statistik-Erfassung
|
||||
### Statistik-Erfassung, Logging
|
||||
|
||||
Es werden keine IP-Adressen oder sonstigen persönlichen Daten gespeichert, lediglich die Zahl der Aufrufe der Funktionen in einer kumulierten Darstellung.
|
||||
Es werden keine IP-Adressen oder sonstigen persönlichen Daten gespeichert, lediglich die Zahl der Aufrufe der Funktionen in einer kumulierten Darstellung. Die Logdatei enthält nur Einträge der letzten sieben Tage.
|
||||
|
||||
## Lizenz
|
||||
|
||||
|
21
app.py
21
app.py
@@ -16,7 +16,24 @@ def index():
|
||||
# Rudimentäres Logging für Page Impressions
|
||||
log_dir = 'log'
|
||||
os.makedirs(log_dir, exist_ok=True)
|
||||
with open(os.path.join(log_dir, 'pageviews.log'), 'a', encoding='utf-8') as f:
|
||||
log_path = os.path.join(log_dir, 'pageviews.log')
|
||||
# Logfile bereinigen: nur Zeilen der letzten 7 Tage behalten
|
||||
if os.path.exists(log_path):
|
||||
now = datetime.now()
|
||||
lines_new = []
|
||||
with open(log_path, encoding='utf-8') as f:
|
||||
for line in f:
|
||||
try:
|
||||
date_str = line[:10]
|
||||
date = datetime.strptime(date_str, '%Y-%m-%d')
|
||||
if (now - date).days <= 7:
|
||||
lines_new.append(line)
|
||||
except Exception:
|
||||
# Zeile ohne Datum behalten (zur Sicherheit)
|
||||
lines_new.append(line)
|
||||
with open(log_path, 'w', encoding='utf-8') as f:
|
||||
f.writelines(lines_new)
|
||||
with open(log_path, 'a', encoding='utf-8') as f:
|
||||
from datetime import datetime as dt
|
||||
f.write(f"{dt.now().isoformat()} PAGEVIEW\n")
|
||||
tage = werktage = wochentag = datumsrechnung = werktagsrechnung = kw_berechnen = kw_datum = wochen_monate = None
|
||||
@@ -24,7 +41,7 @@ def index():
|
||||
if request.method == 'POST':
|
||||
action = request.form.get('action')
|
||||
# Funktions-Logging
|
||||
with open(os.path.join(log_dir, 'pageviews.log'), 'a', encoding='utf-8') as f:
|
||||
with open(log_path, 'a', encoding='utf-8') as f:
|
||||
from datetime import datetime as dt
|
||||
f.write(f"{dt.now().isoformat()} FUNC: {action}\n")
|
||||
if action == 'tage':
|
||||
|
Reference in New Issue
Block a user