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.
|
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
|
## Lizenz
|
||||||
|
|
||||||
|
21
app.py
21
app.py
@@ -16,7 +16,24 @@ def index():
|
|||||||
# Rudimentäres Logging für Page Impressions
|
# Rudimentäres Logging für Page Impressions
|
||||||
log_dir = 'log'
|
log_dir = 'log'
|
||||||
os.makedirs(log_dir, exist_ok=True)
|
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
|
from datetime import datetime as dt
|
||||||
f.write(f"{dt.now().isoformat()} PAGEVIEW\n")
|
f.write(f"{dt.now().isoformat()} PAGEVIEW\n")
|
||||||
tage = werktage = wochentag = datumsrechnung = werktagsrechnung = kw_berechnen = kw_datum = wochen_monate = None
|
tage = werktage = wochentag = datumsrechnung = werktagsrechnung = kw_berechnen = kw_datum = wochen_monate = None
|
||||||
@@ -24,7 +41,7 @@ def index():
|
|||||||
if request.method == 'POST':
|
if request.method == 'POST':
|
||||||
action = request.form.get('action')
|
action = request.form.get('action')
|
||||||
# Funktions-Logging
|
# 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
|
from datetime import datetime as dt
|
||||||
f.write(f"{dt.now().isoformat()} FUNC: {action}\n")
|
f.write(f"{dt.now().isoformat()} FUNC: {action}\n")
|
||||||
if action == 'tage':
|
if action == 'tage':
|
||||||
|
Reference in New Issue
Block a user